wrk性能测试工具使用方法
admin
2023-03-25 09:01:46
0

今天主要介绍一款高效的性能测试工具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: 577891
Requests/sec:  19202.50
Transfer/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添翼。


相关内容

热门资讯

特朗普下令不打了,美国的“余粮... 可以说戛然而止,快得让很多人都无法适应。前两周,每一天美国都要打击伊朗一通。就在7月24日白宫会议前...
穆杰塔巴最新表态:支持黎真主党 △伊朗最高领袖穆杰塔巴·哈梅内伊(资料图)当地时间7月26日晚,伊朗最高领袖穆杰塔巴·哈梅内伊对黎巴...
美军瘫痪一艘驶向伊朗的油轮,特... 美国总统特朗普虽下令暂停打击伊朗,但美军仍在执行对霍尔木兹海峡的封锁任务。针对美军瘫痪一艘驶向伊朗油...
“小牌大耍”的底气到底是哪里来... 澎湃首席评论员 李平这两天,“艺人李权哲乘高铁占座事件”在网上引发热议,该艺人参加的活动主办方曾发布...
越南籍船舶南海遇险沉没,中方已... 据凤凰卫视报道,一艘越南船舶7月24日夜间在越南庆和以东220海里附近遇险沉没,船上共62名越南籍人...
李权哲占座、蒙面、装死:娱乐圈... 你买了一张高铁一等座的票,找到自己的位置,18A。有人坐着。你拿出手机看了眼购票记录——没错,18A...
杭州景区咖啡店闯入1条幼蛇,仅... 夏天气温高、湿度大,蛇类活动进入高峰期,千万别被“小蛇无害”的刻板印象骗了!有些幼蛇看着迷你可爱,实...
AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...