vlambda博客
学习文章列表

高效的性能测试工具-wrk

今天主要介绍一款高效的性能测试工具wrk。wrk的使用方式和apache bench这些工具也大体相似,通过命令行的方式即可发起。但是wrk比起apache bench更为高效,因为它支持多线程,更容易发挥多核CPU的能力,甚至可以压满CPU。wrk还支持Lua脚本来提供更多的参数定制、参数加密等需求,灵活度更高。


安装


wrk支持大部分UNIX系统,不支持windows系统。安装过程比较简单,从github克隆项目到本地,再在项目路径下make即可,在此就不详述,具体可查看github文档。


基础使用


wrk -t12 -c400 -d30s http://127.0.0.1:80/index.html

以上命令行表示对本地80端口的index.html文件发起请求,压测时间持续30秒,并发12线程,保持400个HTTP连接请求。

输出结果:
Running 30s test @ http://127.0.0.1:80/index.html 12 threads and 400 connections Thread Stats Avg Stdev Max +/- Stdev Latency 90.43ms 201.95ms 1.99s 88.34% Req/Sec 1.79k 1.80k 21.57k 89.17% 577891 requests in 30.09s, 188.46MB read Socket errors: connect 0, read 0, write 0, timeout 37 Non-2xx or 3xx responses: 577891Requests/sec: 19202.50Transfer/sec: 6.26MB

结果展示了本次压测的请求平均延迟Latency、每秒每线程平均请求数Req/Sec、合计的每秒请求数Requests/sec和每秒吞吐量Transfer/sec等。这些数据即可反映出压测服务器的大概响应情况,以对服务器性能做初步判断。

贴一下请求的命令参数:

-c, --connections: total number of HTTP connections to keep open with each thread handling N = connections/threads-d, --duration: duration of the test, e.g. 2s, 2m, 2h-t, --threads: total number of threads to use-s, --script: LuaJIT script, see SCRIPTING-H, --header: HTTP header to add to request, e.g. "User-Agent: wrk" --latency: print detailed latency statistics --timeout: record a timeout if a response is not received within this amount of time.
关于长连接和短连接: apache bench默认短连接,wrk默认长连接。 wrk如需测试短连接,可添加 -H “Connection:Close” 来关闭长连接。

Post请求


wrk不仅能发起对Get请求,也能通过Lua脚本发起Post请求。 如编写post.lua脚本:
wrk.method = "POST"wrk.headers["Content-Type"] = "application/x-www-form-urlencoded"wrk.body = "youbody&youset"
在脚本中定义了Post请求的headers和body。 执行wrk请求时加上—script指定该脚本:
wrk -t4 -c2000 -d60s -T5s --script=post.lua --latency http://127.0.0.1:80/user/login
如此,便可轻松实现Post请求的压测。


后续


wrk作为一种高效的性能测试工具,可以作为一种常用手段对待测url发起请求。 本文只是初步介绍了引用Lua脚本执行Post请求,Lua脚本其实可以实现更为丰富的测试需求,下一次我们再详细看下Lua脚本如何为wrk添翼。

更多精彩推荐:




高效的性能测试工具-wrk



加入我们



云计算开发工程师
大数据开发工程师
Web前端开发工程师
PHP开发工程师
测试开发工程师
运维开发工程师





公司福利



1、公司提供业内具有竞争力的薪酬,并根据情况和市场薪酬水平定期调整。
2、五险一金:按规定为员工办理五项社会保险及住房公积金。
3、节日福利丰富,定期旅游,各项体育竞赛。
4、公司为员工提供免费住宿,员工可享受免费工作午餐。
5、年假、法定节假日按国家规定休息。

6、不定期大餐,丰盛的下午茶。


我们是一群有专业技术知识和远大理想抱负的年轻人,这里的每一个人都有着鲜明的个性,IT宅男、技术宅、活力、热情、激情是这里的符号。我们一直在做自己喜欢的事情,每个人都希望能用自己擅长的技术做出成功的产品来体现个人价值,团队价值。在这里,你有无限的职业发展空间。


We want you, just you !

还不快来投简历!

研发部邮箱[email protected]