前言
前一章提到,怎麼搭建一個簡單的web服務,咱們搭建好了,是不是需要測試下自己代碼的健壯性。所以我又找了個壓力測試工具。發現簡go_bench單實用。
正文
安裝
方式一:
go get github.com/linkxzhou/http_bench
方式二:
git clone [email protected]: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
這就完了,親測簡單實用。