wrk压力测试工具

Mac下安装:brew install wrk

即可安装成功,进入wrk目录/usr/local/Cellar/wrk/4.0.2/bin,执行wrk命令即可

简单的性能测试

  bin git:(master) wrk -t12 -c100 -d30s       Running 30s test @    12 threads and 100 connections   Thread Stats   Avg      Stdev     Max   +/- Stdev     Latency    55.09ms   95.37ms   1.47s    90.01%     Req/Sec   271.78    122.50   626.00     66.39%   95509 requests in 30.08s, 55.70MB read   Socket errors: connect 0, read 0, write 0, timeout 1 Requests/sec:   3175.48 Transfer/sec:      1.85MB

-t12 为模拟12个用户线程 -c100模拟100个连接

3. 统计分析

项目名称说明
Avg   平均值   每次测试的平均值  
Stdev   标准偏差   结果的离散程度,越高说明越不稳定  
Max   最大值   最大的一次结果  
+/- Stdev   正负一个标准差占比   结果的离散程度,越大越不稳定  

Latency: 可以理解为响应时间
Req/Sec: 每个线程每秒钟的完成的请求数

一般我们来说我们主要关注平均值和最大值.
标准差如果太大说明样本本身离散程度比较高. 有可能系统性能波动很大

4.wrk Post接口测试

首先需要准备一个lua文件
wrk.method = "POST" wrk.headers["Content-Type"] = "application/x-www-form-urlencoded" wrk.body = "youbody&youset"

这个文件内容建议自己填写,保存为 post.lua 文件

当然这个脚本内容可以再次定义,具体查看wrk的git文档

执行脚本

wrk -t4 -c2000 -d60s -T5s --script=post.lua --latency 

这样就是模拟4个线程,2000个连接,在60s内,间隔5s 执行 post.lua 的请求

你可以扩展一下,制作 shell 脚本来批量测试各种接口

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。