Siege 是一個開源回歸測試和基準測試實用程式。它可以使用使用者定義的模擬使用者數量對單個 URL 進行壓力測試,也可以將多個 URL 讀入記憶體並同時對它們進行壓力測試。此程式報告記錄的命中總數、傳輸的位元組數、回應時間、並發性和返回狀態。 Siege 支援 HTTP/1.0 和 1.1 協定、GET 和 POST 指令、cookie、交易日誌和基本驗證。其功能可根據每個使用者進行配置。
大多數功能都可以使用命令列選項進行配置,其中還包括預設值,以最大限度地減少程式呼叫的複雜性。 Siege 可讓您對具有 n 個使用者的 Web 伺服器施加 t 次壓力,其中 n 和 t 由使用者定義。它記錄測試的持續時間以及每筆交易的持續時間。它會報告交易數、經過的時間、傳輸的位元組數、回應時間、交易速率、並發性以及伺服器回應 OK 的次數(即狀態代碼 200)。
Siege 是由 Jeffrey Fulmer 在擔任 Armstrong World Industries 網站管理員時設計和實現的。它部分模仿了 Lincoln Stein 的酷刑.pl,其數據報告幾乎相同。但是torture.pl 不允許同時強調多個URL;出於這種需要,圍攻誕生了…
當 HTTP 伺服器被該程式攻擊時,它被稱為「受到圍攻」。
Siege 是為 Web 開發人員和 Web 系統管理員編寫的。它允許這些人在脅迫下測試他們的程序和系統。作為網路專業人士,您對產品的完整性負責,但您無法控制誰訪問它。流量高峰隨時可能發生。你怎麼知道你是否準備好?
《圍攻》將允許您對這些程序施加壓力,以便您更好地了解它們可以承受的負載。如果您的網站目前高峰為 250 個並發事務,那麼您會睡得更好,因為您知道您的網站可以承受 400 個並發事務的重量。
事務的特點是伺服器為客戶端開啟套接字、處理請求、透過線路提供資料並在完成後關閉套接字。值得注意的是,人類網路使用者需要時間消化返回給他們的資料。圍攻用戶則不然。在實踐中,我發現 400 個同時 siege 用戶的數量至少是真實互聯網會話數量的五倍。這就是為什麼 siege 允許你設定延遲 ( --delay=NUM )。設定後,每個攻城用戶都會休眠 1 到 NUM 之間的隨機秒數。透過伺服器日誌,您應該能夠獲得在頁面上花費的平均時間。建議您在模擬互聯網活動時使用該數字來計算延遲。
最新版本的siege可以透過匿名FTP取得:http://download.joedog.org/siege/siege-latest.tar.gz
來源儲存庫位於 GitHub 上: git clone https://github.com/JoeDog/siege.git
您可以在瀏覽器中查看:https://github.com/JoeDog/siege
更新和公告透過 JoeDog 分發:http://www.joedog.org/
Siege 是使用 GNU autoconf 建構的。如果您熟悉 GNU 軟體,那麼您應該可以輕鬆安裝 siege 請參閱安裝檔案以獲取更多詳細資訊。
若要啟用 HTTPS 支持,您必須在系統上安裝 openssl 和 openssl-devel。
若要啟用 gzip 傳輸編碼,您需要在系統上安裝 zlib 和 zlib-devel。
所有先決條件必須在編譯時安裝。如果在編譯 siege 後新增庫,則必須再次執行 ./configure、make 和 make install。
圍攻先決條件不是依賴項。如果這些庫不存在,應用程式仍將編譯並執行。它根本不包含這些功能。
文件可在手冊頁 siege(1)layingsiege(1) 中找到,該發行版中包含一個 html 手冊:manual.html
有關 siege 的完整文件可以在 www.joedog.org 上找到
請查閱文件 COPYING 以取得完整的許可證資訊。
版權所有 (C) 2000-2023,作者:Jeffrey Fulmer [email protected]
允許任何人在任何媒介上製作或分發收到的本文檔的逐字副本,前提是保留版權聲明和本許可聲明,從而允許收件人依次重新分發。
在上述條件下,允許分發本文檔或其部分的修改版本,前提是這些版本帶有顯著的通知,說明最後更改者。
此外,作為特殊例外,版權所有者允許在每個單獨的源文件中描述的特定條件下將該程式的部分程式碼與 OpenSSL 庫鏈接,並分發包括兩者的鏈接組合。
對於 OpenSSL 之外使用的所有程式碼,您必須在所有方面遵守 GNU 通用公共授權。如果您修改帶有此例外的文件,您可以將此例外擴展到您的文件版本,但您沒有義務這樣做。
如果您不想這樣做,請從您的版本中刪除此例外聲明。如果你從程式的所有來源檔案中刪除這條異常語句,那麼這裡也刪除它。