您的位置:首页 > 运维架构 > Apache

开源性能测试工具 - Apache ab 介绍

2010-05-30 15:27 465 查看
<pre>
ab的全称是ApacheBench,是Apache附带的一个小工具,专门用于HTTPServer的benchmarktesting,可以同时模拟多个并发请求。前段时间看到公司的开发人员也在用它作一些测试,看起来也不错,很简单,也很容易使用,所以今天花一点时间看了一下。
通过下面的一个简单的例子和注释,相信大家可以更容易理解这个工具的使用。
一个简单的例子
/*在这个例子的一开始,我执行了这样一个命令ab-n10-c10http://www.google.com/这个命令的意思是启动ab,向www.google.com发送10个请求(-n10),并每次发送10个请求(-c10)——也就是说一次都发过去了。跟着下面的是ab输出的测试报告,红色部分是我添加的注释。*/
C:/ProgramFiles/ApacheSoftwareFoundation/Apache2.2/bin>ab-n10-c10http
://www.google.com/
ThisisApacheBench,Version2.0.40-dev<$Revision:1.146$>apache-2.0
Copyright1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech.net/Copyright1997-2005TheApacheSoftwareFoundation,http://www.apache.org/
Benchmarkingwww.google.com(bepatient).....done

ServerSoftware:GWS/2.1
ServerHostname:www.google.com
ServerPort:80

DocumentPath:/
DocumentLength:230bytes

ConcurrencyLevel:10
/*整个测试持续的时间*/
Timetakenfortests:3.234651seconds
/*完成的请求数量*/
Completerequests:10
/*失败的请求数量*/
Failedrequests:0
Writeerrors:0
Non-2xxresponses:10
Keep-Aliverequests:10
/*整个场景中的网络传输量*/
Totaltransferred:6020bytes
/*整个场景中的HTML内容传输量*/
HTMLtransferred:2300bytes
/*大家最关心的指标之一,相当于LR中的每秒事务数,后面括号中的mean表示这是一个平均值*/
Requestspersecond:3.09[#/sec](mean)
/*大家最关心的指标之二,相当于LR中的平均事务响应时间,后面括号中的mean表示这是一个平均值*/
Timeperrequest:3234.651[ms](mean)
/*这个还不知道是什么意思,有知道的朋友请留言,谢谢^_^*/
Timeperrequest:323.465[ms](mean,acrossallconcurrentrequests)
/*平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题*/
Transferrate:1.55[Kbytes/sec]received
/*网络上消耗的时间的分解,各项数据的具体算法还不是很清楚*/
ConnectionTimes(ms)
minmean[+/-sd]medianmax
Connect:20318926.1302954
Processing:4021601462.030343154
Waiting:4021601462.030343154
Total:6024791276.430643184

/*下面的内容为整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中50%的用户响应时间小于3064毫秒,60%的用户响应时间小于3094毫秒,最大的响应时间小于3184毫秒*/
Percentageoftherequestsservedwithinacertaintime(ms)
50%3064
66%3094
75%3124
80%3154
90%3184
95%3184
98%3184
99%3184
100%3184(longestrequest)

更多信息
ab不像LR那么强大,但是它足够轻便,如果只是在开发过程中想检查一下某个模块的响应情况,或者做一些场景比较简单的测试,ab还是一个不错的选择——至少不用花费很多时间去学习LR那些复杂的功能,就更别说那License的价格了。
下面是ab的详细参数解释,大家有兴趣的可以研究一下,最近没有足够多的时间研究,如果哪位朋友有兴趣希望可以帮忙翻译一下每个参数的含义,有问题讨论也欢迎在这里回帖^_^
ab
[-
A
auth-username
:
password
][-
c
concurrency
][-
C
cookie-name
=
value
][-
d
][-
e
csv-file
][-
g
gnuplot-file
][-
h
][-
H
custom-header
][-
i
][-
k
][-
n
requests
][-
p
POST-file
][-
P
proxy-auth-username
:
password
][-
q
][-
s
][-
S
][-
t
timelimit
][-
T
content-type
][-
v
verbosity
][-
V
][-
w
][-
x
<table>-attributes
][-
X
proxy
[:
port
]][-
y
<tr>-attributes
][-
z<td>-attributes
][http://]
hostname
[:
port
]/
path

-A
auth-username
:
password
SupplyBASICAuthenticationcredentialstotheserver.Theusernameandpasswordareseparatedbyasingle
:
andsentonthewirebase64encoded.Thestringissentregardlessofwhethertheserverneedsit(i.e.,hassentan401authenticationneeded).
-c
concurrency
Numberofmultiplerequeststoperformatatime.Defaultisonerequestatatime.
-C
cookie-name
=
value
Adda
Cookie:
linetotherequest.Theargumentistypicallyintheformofaname
=
valuepair.Thisfieldisrepeatable.
-d

Donotdisplaythe"percentageservedwithinXX[ms]table".(legacysupport).
-e
csv-file
WriteaCommaseparatedvalue(CSV)filewhichcontainsforeachpercentage(from1%to100%)thetime(inmilliseconds)ittooktoservethatpercentageoftherequests.Thisisusuallymoreusefulthanthe'gnuplot'file;astheresultsarealready'binned'.
-g
gnuplot-file
Writeallmeasuredvaluesoutasa'gnuplot'orTSV(Tabseparatevalues)file.ThisfilecaneasilybeimportedintopackageslikeGnuplot,IDL,Mathematica,IgororevenExcel.Thelabelsareonthefirstlineofthefile.
-h

Displayusageinformation.
-H
custom-header
Appendextraheaderstotherequest.Theargumentistypicallyintheformofavalidheaderline,containingacolon-separatedfield-valuepair(i.e.,
"Accept-Encoding:zip/zop;8bit"
).
-i

Do
HEAD
requestsinsteadof
GET
.
-k

EnabletheHTTPKeepAlivefeature,i.e.,performmultiplerequestswithinoneHTTPsession.DefaultisnoKeepAlive.
-n
requests
Numberofrequeststoperformforthebenchmarkingsession.Thedefaultistojustperformasinglerequestwhichusuallyleadstonon-representativebenchmarkingresults.
-p
POST-file
FilecontainingdatatoPOST.
-P
proxy-auth-username
:
password
SupplyBASICAuthenticationcredentialstoaproxyen-route.Theusernameandpasswordareseparatedbyasingle
:
andsentonthewirebase64encoded.Thestringissentregardlessofwhethertheproxyneedsit(i.e.,hassentan407proxyauthenticationneeded).
-q

Whenprocessingmorethan150requests,
ab
outputsaprogresscounton
stderr
every10%or100requestsorso.The
-q
flagwillsuppressthesemessages.
-s

Whencompiledin(
ab-h
willshowyou)usetheSSLprotected
https
ratherthanthe
http
protocol.Thisfeatureisexperimentalandveryrudimentary.Youprobablydonotwanttouseit.
-S

Donotdisplaythemedianandstandarddeviationvalues,nordisplaythewarning/errormessageswhentheaverageandmedianaremorethanoneortwotimesthestandarddeviationapart.Anddefaulttothemin/avg/maxvalues.(legacysupport).
-t
timelimit
Maximumnumberofsecondstospendforbenchmarking.Thisimpliesa
-n50000
internally.Usethistobenchmarktheserverwithinafixedtotalamountoftime.Perdefaultthereisnotimelimit.
-T
content-type
Content-typeheadertouseforPOSTdata.
-v
verbosity
Setverbositylevel-
4
andaboveprintsinformationonheaders,
3
andaboveprintsresponsecodes(404,200,etc.),
2
andaboveprintswarningsandinfo.
-V

Displayversionnumberandexit.
-w

PrintoutresultsinHTMLtables.Defaulttableistwocolumnswide,withawhitebackground.
-x
<table>-attributes
Stringtouseasattributesfor
<table>
.Attributesareinserted
<table
here
>
.
-X
proxy
[:
port
]

Useaproxyserverfortherequests.
-y
<tr>-attributes
Stringtouseasattributesfor
<tr>
.
-z
<td>-attributes
Stringtouseasattributesfor
<td>
.

相关链接
ab是Apache的一个安装组件,所以需要下载Apache安装后才能使用,可以访问Apache的项目主页来下载http://httpd.apache.org/download.cgi
ab的更多信息可以参加Apache主页上的描述
http://httpd.apache.org/docs/2.0/programs/ab.html
</pre>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: