前言

前一章提到,怎么搭建一个简单的web服务,咱们搭建好了,是不是需要测试下自己代码的健壮性。所以我又找了个压力测试工具。发现go_bench简单实用。

 

正文

 

安装

方式一:
go get github.com/linkxzhou/http_bench

方式二:
git clone git@github.com:linkxzhou/http_bench.git


下载完成之后,进入http_bench目录下,进行编译http_bench,命令如下:

cd http_bench

go build http_bench.go

这就准备完事了,可以使用了。

 

使用示例

例: ./http_bench -n 1000 -c 10 -t 3000 -m GET http://www.baidu.com/


含义:发送1000请求, 同时打开10个client, 超时时间设置为3000ms,请求方式为GET,请求链接http://www.baidu.com/


响应:
Output:
    Request:
    [1000] http://www.baidu.com
    Summary:
    Total:        5.2124 secs
    Slowest:      0.3283 secs
    Fastest:      0.0195 secs
    Average:      0.0345 secs
    Requests/sec: 191.8491

    Status code distribution:
    [200] 1000 responses

    Latency distribution:
    10% in 0.0253 secs
    25% in 0.0272 secs
    50% in 0.0298 secs
    75% in 0.0350 secs
    90% in 0.0498 secs
    95% in 0.0606 secs
    99% in 0.0872 secs

 

参数解析

 -n  请求HTTP的次数
    -c  并发的客户端数量,但是不能大于HTTP的请求次数
    -q  频率限制,每秒的请求数
    -o  输出结果格式,可以为CSV,也可以直接打印
    -m  HTTP方法,包括GET, POST, PUT, DELETE, HEAD, OPTIONS.
    -H  请求发起的HTTP的头部信息,例如:-H "Accept: text/html" -H "Content-Type: application/xml"
    -t  请求超时的毫秒
    -A  HTTP的Accept的头部字段
    -d  HTTP发起POST请求的body数据
    -T  HTTP的Content-type, 例如:"text/html","application/json"
    -a  HTTP的鉴权请求, 例如:http://username:password@xxx/
    -x  HTTP的代理IP和端口
    -disable-compression  不启用压缩
    -disable-keepalive    不开启keepalive
    -cpus                 使用cpu的内核数
    -host                 HTTP请求的host的值
    -file  读取文件中的URL,格式为一行一个URL,发起请求每次随机选择发送的URL

 

这就完了,亲测简单实用。