wrk快速上手
wrk快速上手
1min看完就能上手!
一句话介绍:wrk 是一个现代化的 HTTP 基准测试工具,它能够在单核 CPU 上以较少的线程产生强大的负载。
说白了是一个简单易用的接口性能测试工具,对开发人员(非运维)来说上手成本低,几乎零学习成本。
另外wrk是在linux环境下使用的,所以windows平台测试使用的话使用docker。
Linux环境使用wrk
这种教程很多,例如性能测试工具wrk教程。
Docker中使用wrk
演示的宿主机为windows。
使用的容器仓库github地址。
加上--rm,用完即删,是因为这个容器仅仅用于临时的简单测试,不会占空间。
执行run语句时本地若无镜像则自动会pull。
1 | docker run --rm ghcr.io/william-yeh/wrk # 首次运行测试 |
e.g.1,表示使用8个线程、并发量200,对百度进行8s的压测。
1 | docker run --rm ghcr.io/william-yeh/wrk -t8 -c200 -d10s --latency http://www.baidu.com |
e.g.2,路径写法是linux风格的、windows也可改为对应风格
1 | docker run --rm -v $(pwd)/test.lua:/data/test.lua ghcr.io/william-yeh/wrk -t8 -c200 -d10s -s /data/test.lua --latency http://www.baidu.com |
e.g.3,注意要测试宿主机(是Windows或macOS)的127.0.0.1时,要使用特殊的 DNS 名称host.docker.internal
1 | docker run --rm -v E:\Project\java\test-project\wrkbench\test.lua:/data/test.lua ghcr.io/william-yeh/wrk -t50 -c200 -d30s -s /data/test.lua --latency http://host.docker.internal:8085/example/hello |
ok你现在已经会举一反三了。
结果说明
压测百度的结果:
结果说明:
可以看到最后每秒吞吐量约为215.20
Latency:延迟。Req/Sec:每秒请求数。Stdev为标准差。

Latency Distribution:分位延迟。可以理解为90%的请求能在390ms内,99%的请求再1.24s以内。
可见错误0个,超时158个。
这里最后的Requests/sec是指所有线程的情况,所以和之前的Req/Sec数据不一样。
注意事项
压测结果与机器性能有关!
无法模拟一个接口的极限情况(因为一台机器压测力度有限)。




