效能測試工具 - Siege

WanWuJieKeLian發表於2024-07-26


在快速發展的技術時代,網站和應用的效能對於使用者體驗和業務成功至關重要。作為測試工程師,找到高效的效能測試工具顯得尤為重要。今天,我們來聊聊一個備受推崇的效能測試工具——Siege。
為什麼Siege能夠在眾多效能測試工具中脫穎而出?它究竟有哪些獨特之處,能幫助測試人員高效地進行效能測試?

前言


效能測試,作為一個不可或缺的軟體質量保證環節,旨在評估和提升產品在各種負載情況下的執行效率、穩定性和響應速度。它不僅僅是發現系統瓶頸,而是透過科學的方法和工具,確保我們的產品在面對大量使用者併發訪問、大資料處理或高強度運算時,能夠保持流暢、穩定和高效。

Siege是一款開源的HTTP負載測試和壓力測試工具,具有簡單易用的特點。它能夠模擬大量使用者同時訪問網站,幫助我們評估伺服器的穩定性和響應速度。以下是Siege的一些核心特點和實際應用案

本文將介紹一款免費的效能測試工具 - Siege,可以進行負載測試和基準測試。

簡介


Siege是一個http負載測試和基準測試的效能測試工具。它旨在讓web開發人員測量他們的程式碼,看看它在網際網路上的載入情況。Siege支援基本身份驗證、Cookie、HTTP、HTTPS和FTP協議。它允許使用者使用可配置數量的模擬客戶端訪問伺服器,從而來驗證併發情況下伺服器的效能。

Siege的持續時間是以交易、模擬使用者的總數和每個模擬使用者重複攻擊伺服器的次數來衡量的,因此,20個併發使用者50次是1000個事務的測試長度。效能指標包括測試經過的時間、傳輸的資料量(包括請求頭)、伺服器的響應時間、事務速率、吞吐量、併發性和返回OK的次數,這些指標在每次執行結束時都會被量化並報告。

可用於在壓力條件下對Web伺服器的效能進行測量。它的評估依據包括傳輸資料量、伺服器的響應時間、事務處理速率、吞吐量、併發性和程式正常返回的時間。Siege提供三種操作模式:迴歸測試,網路模擬測試和暴力測試。

平臺支援:

Siege是在GNU/Linux上編寫的,並已成功移植到AIX、BSD、HP-UX和Solaris。它可以在大多數System V UNIX變體和大多數較新的BSD系統上編譯。由於Siege依賴於微軟不支援的POSIX.1b功能,因此它無法在Windows上執行。當然,你可以使用Siege來測試Windows伺服器。

官方網址:https://www.joedog.org/siege-home/

安裝


1、安裝包下載地址https://download.joedog.org/siege/

例如下載siege-4.1.6.tar.gz版本,之後依次進行解壓縮、編譯、安裝等操作。

tar -xvf siege-4.1.6.tar.gz
cd siege-4.1.6
./configure
make
make install

2、Mac環境下安裝:

brew install siege


快速上手


安裝完成後,檢視安裝是否成功,可以直接在終端輸入siege命令即可。

可以看到列出了引數使用資訊。

引數詳解:

 1 -V, --version VERSION,列印版本號。
 2 -h, --help HELP,列印此部分。
 3 -C, --config CONFIGURATION,顯示當前配置。
 4 -v, --verbose VERBOSE,將通知列印到螢幕上。
 5 -q, --quiet QUIET,關閉詳細功能並抑制輸出。
 6 -g, --get GET,下拉HTTP請求頭並顯示交易,非常適合應用程式除錯。
 7 -p, --print PRINT,就像GET一樣,只列印整頁。
 8 -c, --concurrent=NUM 併發使用者,預設值為10。
 9 -r, --reps=NUM REPS,執行測試的次數,不能與-t同時存在。
10 -t, --time=NUMm 定時測試,其中“m”是修飾符S、M或H,例如:--time=1H,1小時測試。
11 -d, --delay=NUM 時間延遲,每次請求前的隨機延遲。
12 -b, --benchmark 基準測試:請求之間沒有延遲。
13 -i, --internet 網際網路使用者模擬,隨機點選網址。
14 -f, --file=FILE FILE,選擇一個特定的URL檔案。
15 -R, --rc=FILE RC,指定siegerc檔案。
16 -l, --log[=FILE] 日誌到檔案。如果未指定FILE,使用預設值:PREFIX/var/siege.log。
17 -m, --mark="text" MARK,用字串標記日誌檔案。在.001和數字之間(不計入統計資料)。
18 -H, --header="text" 在請求中新增一個請求頭(可以是多個)。
19 -A, --user-agent="text" 在請求中設定使用者代理。
20 -T, --content-type="text" 設定請求中的內容型別。
21 -j, --json-output JSON OUTPUT,將最終統計資料以JSON格式列印到stdout。
22 --no-parser NO PARSER,關閉HTML頁面解析器。
23 --no-follow NO FOLLOW,不關注HTTP重定向。

1、終端輸入負載命令

例如對URL進行併發數3個,執行2次的負載測試。

siege -c 3 -r 2 https://www.httpbin.org/get

2、執行結果

 1 總共測試次數:6次點選
 2 成功次數百分比:100.00%
 3 總共耗時多少秒:2.78秒
 4 總共傳輸資料:0.00 MB
 5 響應時間:1.27秒
 6 平均每秒處理請求數:2.16轉/ 7 吞吐量:0.00 MB/ 8 最高併發:2.74
 9 成功的請求數:6
10 失敗的請求數:0
11 每次傳輸所花最長時間:1.55
12 每次傳輸所花最短時間:0.86

在使用Siege進行效能測試的過程中,結合優秀的學習資源和工具能顯著提升測試效果。推薦一些實用的教程和書籍,如《Web效能權威指南》和《效能測試工具大全》。此外,可以結合Jenkins等持續整合工具,將Siege整合到自動化測試流程中,進一步提高測試效率。

Siege作為一款強大且易用的效能測試工具,憑藉其高效的併發使用者模擬和詳盡的測試報告,贏得了眾多測試人員的青睞。透過使用Siege,企業能夠更好地識別和解決效能問題,確保在高負載情況下依然能夠為使用者提供穩定的服務。

效能測試不僅僅是發現問題,更是提升使用者體驗的重要手段。Siege,以其卓越的效能和易用性,成為每一位測試工程師手中的利器,讓我們在效能最佳化的道路上,走得更遠,更穩。


相關文章