介绍:
wrk是一个使用 C 编写的现代HTTP基准测试工具,当在单个多核CPU上运行时,能够产生显著的负载。它将多线程设计与可扩展的事件通知系统(如epoll和kqueue)相结合。
wrk 采用了和 Redis 一样的 ae 异步事件驱动框架。
优势
轻量
安装简单
使用手册简单
自带高性能 IO,通过很少线程即可产生很大的并发量
缺点
目前只支持单机压测,设计的目的不是为了代替专业的 [[Apache JMeter]] 以及 [[LoadRunner]] 等测试工具。
wrk 比较适合于后端对接口的性能测试。
wrk 只能被安装在类 Unix 系统上。Windows 则需要开启 Ubuntu 子系统。
安装
linux https://github.com/wg/wrk/wik...
macOS https://github.com/wg/wrk/wik...
windows( Windows Subsystem for Linux ) https://github.com/wg/wrk/wik...
macOS
brew install wrk
wrk -v
使用
wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html
这一行命令会使用 12 线程,测试 30 秒,并且保持 400 HTTP 连接。
Output:
Running 30s test @ http://127.0.0.1:8080/index.html
12 threads and 400 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 635.91us 0.89ms 12.92ms 93.69%
56.20k 8.07k 62.00k 86.54%
22464657 requests in 30.00s, 17.76GB read
748868.53 :
606.33MB :
wrk的结果相比ab测试结果来说,多了一个延时直方图,有了这个直方图,我们可以更清晰的看到延迟的分布情况。这也是选择wrk最重要的原因
更多命令选项
-c, --connections: 要保持打开的HTTP连接的总数,每个线程处理数N =连接/线程
-d, --duration: 测试持续时间, 如 2s, 2m, 2h
-t, --threads: 测试线程总数
-s, --script: 指定加载lua测试扩展脚本
-H, --header: 添加请求头信息, 如"User-Agent: wrk"
--latency: 打印延迟直方图信息
--timeout: 如果在此时间内没有收到响应,则记录超时.
Numeric arguments may include a SI unit (1k, 1M, 1G)
Time arguments may include a time unit (2s, 2m, 2h)
可以通过 Lua 脚本的方式来产生 POST,PUT 等请求。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...