IDO老徐,在深圳,某上市公司质量部负责人,干了十二年软件测试,公号"简尚" ,博客isTester.com ,关注「软件测试从业者综合能力提升」,微信957863300

轻量级压力测试工具ab,wrk,locust 分析 & 对比(人人可以进行压力测试)

上一篇 / 下一篇  2018-08-10 17:40:35 / 个人分类:测试工具

51Testing软件测试网;L8{gz1k6tLN
轻量级压力测试工具ab,wrk,locust分析&对比(人人可以进行压力测试) 51Testing软件测试网+ol!G {l*VLD6~

}y-HEGt1hb0


4L2M9W{&b4K5A^0vG0

M1C9pT`{(Z0


'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!bq0

51Testing软件测试网)BP*CD.F5H
51Testing软件测试网s)J}1Z;G%H

今天再推荐下两款更强大的51Testing软件测试网|l r1`n9u)] D-]

51Testing软件测试网&JoS7X+H;~w*C0x

$D7ui h,^7o@7B%R0

51Testing软件测试网,Q{1n/tw$M

t;vh@@d.A OhW0

51Testing软件测试网,}+D'Aun.y&NM{&S,\

Y'Y |`_V Q@ ^0

1.51Testing软件测试网azf(Jj)z JS

ab

F-N#eG&J7jW5\*y+~0

是目前最常见的压力测试工具。其典型用法如下:

6Y)HgyfZD&Q'h0

shell> ab -k -n 1000 -c 10  -t 100 http://www.isTester.com/zhichang/177.html

/D7?"^6Y+wM{$z0

其中,参数「c」表示的是并发,

!Qb F7Pe/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.

*R f(} M8j0

wrk

XR B cD)D9t@+f x0

相对于ab来说最大的优点是「支持多线程」,51Testing软件测试网[ }#P F @~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软件测试网)k3p eR&\$`#n}6h

其中,参数「c」表示的是并发,参数「d」表示的是整个测试持续的时间。此外,可以通过参数「t」来控制线程数(缺省值为2),实际使用中可以视情况酌情增大。51Testing软件测试网0~r0~l[

51Testing软件测试网IL0zwFk.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%rw0

shell> wrk -H "Connection: Close" -c 100 -d 10 -t 12http://www.isTester.com/zhichang/177.html

` {t*Y3n)IE0


y nSW kt051Testing软件测试网 d1LauZ${v

通过参数「H」传递一个自定义的Connection请求头来关闭长链接。

0c R%\9_c5H#\m2{}#d0

此外,wrk支持自定义脚本编程,不过相对较复杂51Testing软件测试网"U ?"kY;u aW1b;B|

51Testing软件测试网;X dG](SP
51Testing软件测试网)C$?#sg,~ jU


p(\Pn[ n!jy g0

"A;f-Vp2j0

3.51Testing软件测试网 k#T5rs _l

locust

D.I6VE%cl_/B]0

相对于abwrk来说最大的优点是它不再只是测试一个url,而是可以测试一个「自定义的场景」,其中可以包含多个有相互关联的url51Testing软件测试网 P bkx%L8hyI

此外,它还是分布式可扩展的,可以模拟大量用户的访问,由此可以得到更贴近真实环境的测试数据。51Testing软件测试网'k1?RW#}~O;n-N

51Testing软件测试网I3y pU)BN]

\*[oV0g^0^Mc1~8o0

51Testing软件测试网#{ @DMIC[l\T
51Testing软件测试网AVF4|%{e9]cT

关于locust的具体用法有点复杂,可以自行查阅官方文档

aaj P\)a/i |0

51Testing软件测试网'~6U#N%Va8C6D&f;z
51Testing软件测试网Ia ha2} P5y

51Testing软件测试网\ F+{.g8H`J

bk{F-b:@0


*YUFX(F%?"a0

td9l:P*ub-M'I0

/

;S Q#K[A~K.u0


jks.y~.lU(`j/c}.J0

3H+O;@G7l+?F0

除了abwrklocust等压力测试工具之外,还有很多其它选择,其中比较有代表性的是 GoReplay  TcpCopy

s)gH+g B"n0

可以拷贝线上服务器的真实流量并转发到测试服务器上去,用真实流量来测试,如此得到的数据无疑是更可信的。

#G(T&MlZF%Yh*U0

不过它们的用法更复杂51Testing软件测试网(pPcM*X M Q

51Testing软件测试网_$MD0FU.H

ZtL4N ~0


+l]LXuT6Si0

JH7q6Pa*Q1Hc\G/nf0

补充,51Testing软件测试网M3?Wn#A$c%g

说说压力测试过程中一些注意事项:51Testing软件测试网2aUB+y`@;w


,NX.JRb6_S5e051Testing软件测试网@ wD\7HgB4o5Pk

1. 首先,在使用ab或者wrk的时候,最好在同一个局域网里独立的服务器上运行,因为这些压力测试工具本身也会消耗系统资源51Testing软件测试网+o|'}8rQDhon


*x7@wlT8z/f$K051Testing软件测试网4K2I)b Dn%]F

2. 其次,即便使用了长连接,那么也应该注意端口 TIME_WAIT 问题,视情况可能需要在sysctl配置中开启 tcp_tw_recycle tcp_tw_reuse之类的选项;51Testing软件测试网-y{vg*i4EjO


/@c6\jcP4h0

+b9Nq(g5lD"n0

3. 最后,在压力测试过程中,最好时刻留意哪些资源成为了瓶颈,比如:CPU是不是跑满了,IO是不是跑满了,带宽是不是跑满了等等51Testing软件测试网,gYa8\Wg

如果什么都没跑满,但是压力测试结果却上不去,那么就需要反思一下是不是压力测试工具使用方法有误,或者是不是在off-CPU上消耗了太多时间,只有知道了瓶颈在哪,才能突破系统的极限。

!]#A8q_B0


p3bAkv T-u_051Testing软件测试网gg;[ C*f%N:Z


y G zz9E0b"]051Testing软件测试网uf+m sW't1uE

如上,整理自网络

1`%`-hG2z9h#GA051Testing软件测试网(T*i-Hv2r vwk,}

TAG: 性能测试 压力测试 测试工具

 

评分:0

我来说两句

xuquan

xuquan

IDO老徐,坐标深圳,测试经理,干了十年测试,公号"简尚" ,个人博客isTester.com ,关注「软件测试从业者综合能力提升」,微信957863300

日历

« 2024-04-23  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 914414
  • 日志数: 427
  • 建立时间: 2012-06-04
  • 更新时间: 2022-02-23

RSS订阅

Open Toolbar