Go 语言压测并发请求脚本

breaklinux · · 196 次点击 · · 开始浏览    

1.背景

 在性能测试场景中,需要进行评估服务的QPS和服务并发数.完全模拟程序并发数非go 语言channel和gorouting 莫属如下脚本内容
package main
import (
    "fmt"
    "net/http" 
    "time"
)
func requestServer(ch chan <- string){
     resp, err := http.Get("http://192.168.1.12:88")
     if err != nil {
        ch <- fmt.Sprint(err)
        return 
     }
     ch <- fmt.Sprint(resp.Status)
     defer resp.Body.Close()

}
func main() {
    ch := make(chan string)
    count := 5000
    //开始计时
    begin := time.Now()
    fmt.Println("开始时间:", begin)  
    for i := 0; i<= count; i++ {
        go requestServer(ch)
    }
    for y := 0; y<=count; y++ {
        fmt.Println(<-ch)
    }
    end := time.Now()
    fmt.Println("结束时间:", end, time.Since(begin)) 
}

有疑问加站长微信联系(非本文作者)

本文来自:51CTO博客

感谢作者:breaklinux

查看原文:Go 语言压测并发请求脚本

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:1006366459

196 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传