1. wrk安装

    Mac下安装:brew install wrk

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

  2. 简单的性能测试

  bin git:(master) wrk -t12 -c100 -d30s http://weibo.com     
Running 30s test @ http://weibo.com
  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 http://192.168.31.107/user/login

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

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