wrk 压测笔记
Posted 泰 戈 尔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wrk 压测笔记相关的知识,希望对你有一定的参考价值。
上次写了一篇 locust 压测笔记 开始是部署在自己的本地机器上,办公网测着都没啥问题,但是想部署在开发机上,发现开发机连不上外网,而且只有 Python2 环境,因此离线下载 locust 的路线卡死了。
对比了下目前的一些产品,还是决定选择这个小而精的工具了。
- 下载源码、编译、安装
git clone git@github.com:wg/wrk.git
cd wrk-master
make
make install
- 用法简介
Usage: wrk <options> <url>
Options:
-c, --connections <N> Connections to keep open #服务端连接数
-d, --duration <T> Duration of test # 压测持续时间
-t, --threads <N> Number of threads to use # 开启线程数(线程可以被多个连接复用),因此连接数不能少于线程数
-s, --script <S> Load Lua script file
-H, --header <H> Add header to request
--latency Print latency statistics
--timeout <T> Socket/request timeout
-v, --version Print version details
Numeric arguments may include a SI unit (1k, 1M, 1G)
Time arguments may include a time unit (2s, 2m, 2h)
举例
wrk -t15 -c300 -d10 --latency -s generateIDCode.lua http://localhost:14077/test
- 嵌入 lua 脚本
wrk.method = "POST"
wrk.headers["Content-Type"] = "application/json"
wrk.body = '"A": "B": "C","D": "E","F": "G"'
或者
wrk.method = "POST"
wrk.headers["Content-Type"] = "application/x-www-form-urlencoded"
wrk.headers["User-Agent"] = "Mozilla/5.0 (Linux; android 9; PBEM00 Build/PKQ1.190519.001; wv) AppleWebKit/537.36 (Khtml, like Gecko) Version/4.0 Chrome/70.0.3538.110 Mobile Safari/537.36 haokan/5.16.1.1 (Baidu; P1 9)/OPPO_82_9_00MEBP/1008350n/45EB2DAB0E15DE5433DCA54DCD9F64D0%7CO/1/5.11.2.0/511020/1"
wrk.body = 'nid=11522422680314980636&appid=haokan&token=429817cebf14fc234f03d325feda4561&authorUid=12323434&sids=7294_2'
4 函数 override
wrk 中内嵌 lua 可以用一些函数进行 override,来实现一些辅助功能,比如
function response(status_code, headers, body)
print(status_code, headers, body)
end
function request()
wrk.method="POST"
wrk.headers["Content-Type"] = "application/json"
return wrk.format()
end
举例
wrk -t1 -c1 -d20s --latency --script=post.lua http://localhost:8080/my/interface
参考链接:wrk压测工具使用 https://www.cnblogs.com/garfieldcgf/p/10002698.html
以上是关于wrk 压测笔记的主要内容,如果未能解决你的问题,请参考以下文章