开源性能测试工具 - Apache ab 介绍
2012-04-19 15:55
609 查看
开源性能测试工具-Apacheab介绍
简介ab的全称是ApacheBench,是Apache附带的一个小工具,专门用于HTTPServer的benchmarktesting,可以同时模拟多个并发请求。前段时间看到公司的开发人员也在用它作一些测试,看起来也不错,很简单,也很容易使用,所以今天花一点时间看了一下。
通过下面的一个简单的例子和注释,相信大家可以更容易理解这个工具的使用。
一个简单的例子
/*在这个例子的一开始,我执行了这样一个命令ab-n10-c10
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,
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
[-Aauth-username
:password
][-cconcurrency
][-Ccookie-name
=value
][-d
][-ecsv-file
][-ggnuplot-file
][-h
][-Hcustom-header
][-i
][-k
][-nrequests
][-pPOST-file
][-Pproxy-auth-username
:password
][-q
][-s
][-S
][-ttimelimit
][-Tcontent-type
][-vverbosity
][-V
][-w
][-x<table>-attributes
][-Xproxy
[:port
]][-y<tr>-attributes
][-z<td>-attributes
][http://]hostname
[:port
]/path
-Aauth-username
:password
SupplyBASICAuthenticationcredentialstotheserver.Theusernameandpasswordareseparatedbyasingle
:andsentonthewirebase64encoded.Thestringissentregardlessofwhethertheserverneedsit(i.e.,hassentan401authenticationneeded).
-cconcurrency
Numberofmultiplerequeststoperformatatime.Defaultisonerequestatatime.
-Ccookie-name
=value
Adda
Cookie:linetotherequest.Theargumentistypicallyintheformofaname
=valuepair.Thisfieldisrepeatable.
-d
Donotdisplaythe"percentageservedwithinXX[ms]table".(legacysupport).
-ecsv-file
WriteaCommaseparatedvalue(CSV)filewhichcontainsforeachpercentage(from1%to100%)thetime(inmilliseconds)ittooktoservethatpercentageoftherequests.Thisisusuallymoreusefulthanthe'gnuplot'file;astheresultsarealready'binned'.
-ggnuplot-file
Writeallmeasuredvaluesoutasa'gnuplot'orTSV(Tabseparatevalues)file.ThisfilecaneasilybeimportedintopackageslikeGnuplot,IDL,Mathematica,IgororevenExcel.Thelabelsareonthefirstlineofthefile.
-h
Displayusageinformation.
-Hcustom-header
Appendextraheaderstotherequest.Theargumentistypicallyintheformofavalidheaderline,containingacolon-separatedfield-valuepair(i.e.,
"Accept-Encoding:zip/zop;8bit").
-i
Do
HEADrequestsinsteadof
GET.
-k
EnabletheHTTPKeepAlivefeature,i.e.,performmultiplerequestswithinoneHTTPsession.DefaultisnoKeepAlive.
-nrequests
Numberofrequeststoperformforthebenchmarkingsession.Thedefaultistojustperformasinglerequestwhichusuallyleadstonon-representativebenchmarkingresults.
-pPOST-file
FilecontainingdatatoPOST.
-Pproxy-auth-username
:password
SupplyBASICAuthenticationcredentialstoaproxyen-route.Theusernameandpasswordareseparatedbyasingle
:andsentonthewirebase64encoded.Thestringissentregardlessofwhethertheproxyneedsit(i.e.,hassentan407proxyauthenticationneeded).
-q
Whenprocessingmorethan150requests,
aboutputsaprogresscounton
stderrevery10%or100requestsorso.The
-qflagwillsuppressthesemessages.
-s
Whencompiledin(
ab-hwillshowyou)usetheSSLprotected
httpsratherthanthe
httpprotocol.Thisfeatureisexperimentalandveryrudimentary.Youprobablydonotwanttouseit.
-S
Donotdisplaythemedianandstandarddeviationvalues,nordisplaythewarning/errormessageswhentheaverageandmedianaremorethanoneortwotimesthestandarddeviationapart.Anddefaulttothemin/avg/maxvalues.(legacysupport).
-ttimelimit
Maximumnumberofsecondstospendforbenchmarking.Thisimpliesa
-n50000internally.Usethistobenchmarktheserverwithinafixedtotalamountoftime.Perdefaultthereisnotimelimit.
-Tcontent-type
Content-typeheadertouseforPOSTdata.
-vverbosity
Setverbositylevel-
4andaboveprintsinformationonheaders,
3andaboveprintsresponsecodes(404,200,etc.),
2andaboveprintswarningsandinfo.
-V
Displayversionnumberandexit.
-w
PrintoutresultsinHTMLtables.Defaulttableistwocolumnswide,withawhitebackground.
-x<table>-attributes
Stringtouseasattributesfor
<table>.Attributesareinserted
<tablehere
>.
-Xproxy
[:port
]
Useaproxyserverfortherequests.
-y<tr>-attributes
Stringtouseasattributesfor
<tr>.
-z<td>-attributes
Stringtouseasattributesfor
<td>.
相关链接
ab是Apache的一个安装组件,所以需要下载Apache安装后才能使用,可以访问Apache的项目主页来下载
ab的更多信息可以参加Apache主页上的描述
相关文章推荐
- 开源性能测试工具 - Apache ab 介绍
- 开源性能测试工具 - Apache ab 介绍
- 开源性能测试工具 - Apache ab 介绍
- 开源性能测试工具 - Apache ab 介绍
- 开源性能测试工具 - Apache ab 介绍 ---http://www.cnblogs.com/jackei/archive/2006/07/18/454144.html
- 开源性能测试工具 - Apache ab 介绍
- 开源性能测试工具 - Apache ab 介绍
- 开源性能测试工具 - Apache ab介绍
- 开源性能测试工具 - Apache ab 介绍
- 开源性能测试工具 - Apache ab 介绍
- 开源性能测试工具 - Apache ab 介绍
- 开源性能测试工具 - ApacheBench(简称ab) 介绍
- 【转】开源性能测试工具 - Apache ab 介绍
- 开源性能测试工具 - Apache ab 介绍
- 开源性能测试工具 - Apache ab 介绍
- 开源性能测试工具 - Apache ab 介绍
- 开源性能测试工具 - Apache ab 介绍
- 开源性能测试工具 - Apache ab 介绍
- 开源性能测试工具 - Apache ab 介绍
- 开源性能测试工具 - Apache ab 介绍