有些時候我們只想對一些簡單靜態頁面的進行壓力/性能測試,這個時候用loadrunner或者jmeter就有些顯得大材小用了。這里推薦一個工具siege。
Siege是Linux/Unix下的一個WEB系統的壓力測試工具。
安裝siege
1、下載最新版本的siege:
wget http://download.joedog.org/siege/siege-latest.tar.gz
2、安裝解壓:
tar -zxvf siege-latest.tar.gz
3、進入到解壓后的目錄:
./configure
make && make install
4、安裝完成后,輸入siege,出現這些東西,差不多就是安裝完成了。
圖上左邊為運行是的參數,右邊是對參數的說明;
使用實例:
siege -c 20 -r 3 https://www.baidu.com/
結果:
Transactions: 對服務器的訪問次數。
Availability: 連接的成功率。(所有請求-失敗請求) / 總請求數
Elapsed time: 所有請求耗費的時間
Data transferred: 所有請求傳輸的數據量,包括請求的headers和content。所以這個數值可能比server端統計的數值要大一點
Response time: 平均響應時間
Transaction rate: Transactions / Elapsed time
Throughput: 每秒平均傳輸的數據量
Concurrency: 平均并發的請求數
Successful transactions: 狀態碼為1XX,2XX,3XX的數量
Failed transactions: 狀態碼為4XX,5XX的數量
Longest transaction: 最耗時的請求時間
Shortest transaction: 最短單個請求時間
再來看看siege的參數吧:
-c 30 并發數30
-r 5 循環5次
-f urls.txt 制定url的文件
-d 請求無需等待 delay=0
-t 5 指定執行時間,比如-t 10s -t 1M(H)之類
-H 頭部信息
-l或--log=[File] 指定測試結果的路徑
# -r和-t一般不同時使用
從指定文件中讀取url
siege -c 5 -r 3 -f urls.txt
我們看一下,現在我創建了一個urls.txt 文件里面放入了百度和qq的首頁
使用-f 參數可以從指定的文件中讀取url
如果想指定header信息:
siege -c 5 -r 3 -f urls.txt -H "Accept-Encoding:gzip"