轻量级压力测试工具ab,wrk,locust 分析 & 对比(人人可以进行压力测试)
上一篇 / 下一篇 2018-08-10 17:40:35 / 个人分类:测试工具
4L2M9W{&b4K5A^0vG0
'Sep[5k^UI051Testing软件测试网;c!C|;j^0kQ
之前介绍了4款压力测试工具 51Testing软件测试网QED/s6r*tO)h
http://www.51testing.com/?uid-497177-action-viewspace-itemid-3711000
[,MZ i?-H Q!bq051Testing软件测试网)BP*CD.F5H
51Testing软件测试网s)J}1Z;G%H
今天再推荐下两款更强大的。51Testing软件测试网|l r1`n9u)] D-]
51Testing软件测试网&JoS7X+H;~w*C0x
51Testing软件测试网,Q{1n/tw$M
51Testing软件测试网,}+D'Au n.y&NM{&S,\
1.51Testing软件测试网azf(Jj)z JS
ab
F-N#eG&J7jW5\*y+~0是目前最常见的压力测试工具。其典型用法如下:
6Y)HgyfZD&Q'h0shell> ab -k -n 1000 -c 10 -t 100 http://www.isTester.com/zhichang/177.html
/D7?"^6Y+wM{$z0其中,参数「c」表示的是并发,
!QbF7P e/h0参数「t」表示的是整个测试持续的时间。51Testing软件测试网,lp-X:qupn1|4p
一个很容易被忽视的参数是「k」,它会增加请求头Connection: Keep-Alive,相当于开启了HTTP长连接,这样做一方面可以降低测试服务器动态端口被耗尽的风险,另一方面也有助于给目标服务器更大的压力,测试出更接近极限的结果。
A)pL8xZ0
Dt^5[9Y1pu1Z051Testing软件测试网(l6W2|"m&@!E
51Testing软件测试网9D:lcaD(]
51Testing软件测试网8Njop
W g
z8luh
2.
*Rf(} M8j0wrk
XR BcD)D9t@+f x0相对于ab来说最大的优点是「支持多线程」,51Testing软件测试网[ }#PF @~F2xs0p
这样更容易发挥多核CPU的能力,从而更容易测试出系统的极限能力。51Testing软件测试网BO W:C$@I-m W
51Testing软件测试网ONbe0^0]^R
51Testing软件测试网)p7{)lIR4Q
其典型用法如下:51Testing软件测试网,\~.wer,GOz
shell> wrk -c 100 -d 10 -t 12 http://www.isTester.com/zhichang/177.html51Testing软件测试网)k3pe R&\$`#n}6h
其中,参数「c」表示的是并发,参数「d」表示的是整个测试持续的时间。此外,可以通过参数「t」来控制线程数(缺省值为2),实际使用中可以视情况酌情增大。51Testing软件测试网0~r0~l[
51Testing软件测试网I L0zwFk.L:v+a
51Testing软件测试网
{"n{+|'^K.i0L
51Testing软件测试网td!Fl7DJ
51Testing软件测试网
{R(H,A/\8l~Y
如果顺着ab的使用惯性,你可能会纳闷为什么wrk没有类似参数「k」这样打开HTTP长链接的选项,这是因为wrk使用的是 HTTP/1.1,缺省开启的是长连接,而ab使用的是HTTP/1.0,缺省开启的是短链接。51Testing软件测试网Zc$B4O;DDr
不过这也引出另一个问题,如何用wrk测试短链接?实际上很简单:
2v@Ks%rw0shell> wrk -H "Connection: Close" -c 100 -d 10 -t 12http://www.isTester.com/zhichang/177.html
`{t*Y3n)IE0
ynSWkt051Testing软件测试网d1LauZ${v
通过参数「H」传递一个自定义的Connection请求头来关闭长链接。
0c R%\9_c5H#\m2{}#d0此外,wrk支持自定义脚本编程,不过相对较复杂…51Testing软件测试网"U ?"kY;uaW1b;B |
51Testing软件测试网;X dG](S P
51Testing软件测试网)C$?#sg,~ jU
p(\Pn[ n!jyg0
3.51Testing软件测试网 k#T5rs_l
locust
D.I6VE%c l_/B]0相对于ab、wrk来说最大的优点是它不再只是测试一个url,而是可以测试一个「自定义的场景」,其中可以包含多个有相互关联的url51Testing软件测试网 Pbkx%L8hy I
此外,它还是分布式可扩展的,可以模拟大量用户的访问,由此可以得到更贴近真实环境的测试数据。51Testing软件测试网'k1?RW#}~O;n-N
51Testing软件测试网I3ypU)BN]
51Testing软件测试网#{ @DMIC[l\T
51Testing软件测试网AVF4|%{e9]cT
关于locust的具体用法有点复杂,可以自行查阅官方文档。
aajP\)a/i |051Testing软件测试网'~6U#N%Va8C6D&f;z
51Testing软件测试网Ia
h a2}P5y
51Testing软件测试网\F+{.g8H`J
*YUFX(F%?"a0
/
;S Q#K[A~K.u0
jk s.y~.lU(`j/c}.J0
除了ab,wrk,locust等压力测试工具之外,还有很多其它选择,其中比较有代表性的是 GoReplay 和 TcpCopy,