推荐一个简易测试工具wrk
白羽 2018-05-18 来源 :网络 阅读 1303 评论 0

摘要:wrk 是一个很简单的 http 性能测试工具. 也可以叫做 http benchmark 工具. 只有一个命令行, 就能做很多基本的 http 性能测试.


介绍

wrk 是一个很简单的 http 性能测试工具. 也可以叫做 http benchmark 工具. 只有一个命令行, 就能做很多基本的 http 性能测试.

简单步骤

安装

git clone https://github.com/wg/wrk.git  cd wrk  make  


使用

wrk -t12 -c100 -d30s -T30 //www.baidu.com

wrk -t2 -c100 -d30s //localhost:8081/ticket/tyj/profitList/uegjVvnL-Watj-iFBA-X4lu-OHINAkqC7Cwy

· t: 线程数

· c: 请求连接数

· d: 测试时间,

· T: 默认超时时间是1秒. 这个有点短. 我一般设置为30秒

一般线程数不宜过多. 核数的2到4倍足够了. 多了反而因为线程切换过多造成效率降低. 因为 wrk 不是使用每个连接一个线程的模型, 而是通过异步网络 io 提升并发量. 所以网络通信不会阻塞线程执行. 这也是 wrk 可以用很少的线程模拟大量网路连接的原因. 而现在很多性能工具并没有采用这种方式, 而是采用提高线程数来实现高并发. 所以并发量一旦设的很高, 测试机自身压力就很大. 测试效果反而下降.

结果说明

  Thread Stats   Avg      Stdev     Max   +/- Stdev

    Latency   354.59ms  377.09ms   1.99s    83.74%

    Req/Sec    21.07     12.79    90.00     80.37%

  6957 requests in 30.10s, 102.55MB read

  Socket errors: connect 0, read 19, write 0, timeout 117

Requests/sec:    231.11

Transfer/sec:      3.41MB

· Latency: 可以理解为响应时间, 有平均值, 标准偏差, 最大值, 正负一个标准差占比.

· Req/Sec: 每个线程每秒钟的完成的请求数, 同样有平均值, 标准偏差, 最大值, 正负一个标准差占比.

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

进阶-脚本调用

post.lua

wrk.method = "POST"  

wrk.body   = "foo=bar&baz=quux"  

wrk.headers["Content-Type"] = "application/x-www-form-urlencoded"  

调用

wrk -t12 -c100 -d30s -T30s --script=post.lua --latency 


 


 本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标软件测试之测试工具频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程