對(duì)Web進(jìn)行壓力測(cè)試有很多工具, 比如Microsoft的application center test (ACT), 還有Mercury 的 LoadRunner, Apache的ab(Apache benchmark), 作為開源軟件的Siege 等。
LoadRunner是一個(gè)商業(yè)軟件,其功能非常的強(qiáng)大,可以自定義HTTP的頭, 訪問的URL, 以及各種訪問并發(fā)規(guī)則等.
apache的ab做重復(fù)壓力測(cè)試不錯(cuò),但是每次只能測(cè)試一個(gè)鏈接.
Siege(英文意思是圍攻)設(shè)計(jì)用于WEB開發(fā)這評(píng)估應(yīng)用在壓力下的承受能力:可以根據(jù)配置對(duì)一個(gè)WEB站點(diǎn)進(jìn)行多用戶的并發(fā)訪問,記錄每個(gè)用戶所有請(qǐng)求過程的相應(yīng)時(shí)間,并在一定數(shù)量的并發(fā)訪問下重復(fù)進(jìn)行。
Siege可以從http://www.joedog.org/siege/獲得, 它包含了一組壓力測(cè)試工具:
siege (1)
----------
使用樣例:
創(chuàng)建任務(wù)列表文件:www.xxx.com.url
http://www.xxx.com/a.html
http://www.xxx.com/b.html
....
siege -c 20 -r 2 -f www.chedong.com.url
參數(shù)說明:
-c 20 并發(fā)20個(gè)用戶
-r 2 重復(fù)循環(huán)2次
-f www.xxx.com.url 任務(wù)列表:URL列表
輸出樣例:
** Siege 2.59
** Preparing 20 concurrent users for battle. 這次“戰(zhàn)斗”準(zhǔn)備了20個(gè)并發(fā)用戶
The server is now under siege.. done. 服務(wù)在“圍攻”測(cè)試中:
Transactions: 40 hits 完成40次處理
Availability: 100.00 % 成功率
Elapsed time: 7.67 secs 總共用時(shí)
Data transferred: 877340 bytes 共數(shù)據(jù)傳輸:877340字節(jié)
Response time: 1.65 secs 相應(yīng)用時(shí)1.65秒:顯示網(wǎng)絡(luò)連接的速度
Transaction rate: 5.22 trans/sec 平均每秒完成5.22次處理:表示服務(wù)器后臺(tái)處理的速度
Throughput: 114385.92 bytes/sec 平均每秒傳送數(shù)據(jù):114385.92字節(jié)
Concurrency: 8.59 最高并發(fā)數(shù) 8.59
Successful transactions: 40 成功處理次數(shù)
Failed transactions: 0 失敗處理次數(shù)
注意:由于速度很快,可能會(huì)達(dá)不到并發(fā)速度很高就已經(jīng)完成。Response time顯示的是測(cè)試機(jī)器和被測(cè)試服務(wù)器之間網(wǎng)絡(luò)鏈接狀況。Transaction rate則表示服務(wù)器端任務(wù)處理的完成速度。
為了方便增量壓力測(cè)試,siege還包含了一些輔助工具:
bombardment (1)
---------------
用于按照增量用戶壓力測(cè)試:
bombardment urlfile.txt 5 3 4 1
初始化URL列表:urlfile.txt
初始化為:5個(gè)用戶
每次增加:3個(gè)用戶
運(yùn)行:4次
每個(gè)客戶端之間的延遲為:1秒
siege2csv.pl (1)
----------------
siege2csv.pl將bombardment的輸出變成CSV格式:
Time Data Transferred Response Time Transaction Rate Throughput Concurrency Code 200 (note that this is horribly broken.)
242 60.22 603064 0.02 4.02 10014.35 0.08
605 59.98 1507660 0.01 10.09 25136.05 0.12
938 59.98 2337496 0.02 15.64 38971.26 0.26
1157 60 2883244 0.04 19.28 48054.07 0.78
參考:
開源測(cè)試工具:http://www.opensourcetesting.org/performance.php