安裝
通過git編譯安裝
#下載wrk
git clone https://github.com/wg/wrk
#進入目錄
cd wrk
#編譯
make
通過git直接下載
git clone https://github.com/wg/wrk.git
mac自動安裝
brew install wrk
基本用法
需在wrk目錄下執行
./wrk -t8 -c100 -d10s http://192.168.0.184:30001/gwmanager --latency
-t:啓動線程數,一般爲cpu核*2,可以根據IO或cpu密集型進行調整
-c: 併發數,平分到每個線程中,熟練不能大於可以用TCP端口數
-d: 持續請求時間
--latency:顯示延時分佈 ,"Latency Distribution"部分。
Running 10s test @ http://192.168.0.184:30001/gwmanager
8 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 27.41ms 28.46ms 89.75ms 75.26%
Req/Sec 626.35 70.19 1.22k 86.62%
Latency Distribution
50% 6.71ms
75% 54.47ms
90% 79.40ms
99% 83.89ms
49908 requests in 10.01s, 7.19MB read
Requests/sec: 4985.86
Transfer/sec: 735.26KB
Latency:響應時間
Req/Sec:單個線程處理請求數
Avg:平均值
Stdev:標準差,值越大說明數據分佈均勻,可能是機器或服務性能不穩定導致。
Max:最大值
+/- Stdev:正負標準差比例,差值比標準差大或小的數據比率
Latency Distribution:延時分佈多少ms一下請求數比例
Requests/sec:平均每秒處理請求數
Transfer/sec:平均每秒傳輸數據量
其他參數
-H:添加header頭
注:冒號後面必須有一個空格,否則無法獲取header
./wrk -t2 -c200 -d10s -H "token: oiSldU" -H "sign: sdsds" http://192.168.0.184:30001/token
--script:添加複雜請求參數,lua腳本 ,或使用 -s:
./wrk -t8 -c100 -d10s http://192.168.0.184:30001/gwmanager --script=test.lua
./wrk -t8 -c100 -d10s http://192.168.0.184:30001/gwmanager -s test.lua
test.lua:
wrk.method = "POST"
wrk.body = "name=123"
wrk.headers["token"] = "xxxxxxxx"
動態參數
#動態header
request = function()
uid = math.random(1, 10000000)
wrk.headers["token"] = uid
return wrk.format(nil, nil, headers, nil)
end