当前位置: 首页 > 工具软件 > wrk > 使用案例 >

压测工具之wrk安装及使用

令狐和裕
2023-12-01

安装

通过git编译安装(需gcc支持) 

#下载wrk
git clone https://github.com/wg/wrk
#进入目录
cd wrk
#编译
make
  • 安装git 
yum -y install git

通过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"
wrk.headers["Content-Type"] = "application/json"

动态参数

#动态header
request = function()
   uid = math.random(1, 10000000)
   wrk.headers["token"] = uid
   return wrk.format(nil, nil, headers, nil)
end
 类似资料: