JMeter+Badboy:簡易的網站壓力測試工具

作者/黃信翰

當一個網路應用程式完成後,通常會進行壓力測試,所謂壓力測試就是以程式模擬使用者的點擊,對網路應用程式進行相同/不同的動作。創造出高負載,並以此找出是否有設計上的漏洞。 JMeter是Apache組織的開放源代碼項目,是使用Java撰寫的應用程式,可用來測試網站功能以及量測效能,模擬在伺服器上附加高負載以測試網站的受壓能力,或者分析不同負載條件下的總性能情況。 JMeter網站:http://jmeter.apache.org JMeter的初始畫面:

於「測試計畫」上「右鍵->新增->Threads(Users)->執行緒群組」,建立一組模擬使用者的動作:

在「執行緒屬性」的區塊,可以設定執行緒數量、延遲時間等,也就是以這些參數模擬大量使用者的操作:

「新增->取樣->HTTP要求」,建立一個模擬使用者進行HTTP要求(拜訪網頁)的動作:

可以在「HTTP要求」頁面設定關於這個動作的資訊,在此將這個動作設定為拜訪凌群電腦首頁(http://www.syscom.com.tw/index.aspx):

若是拜訪的網頁需要額外POST或GET的參數,可以在「送出含參數的要求」區塊中設定:

在「新增->接聽」功能表中可以選擇加入各種檢視測試結果的報告,在此以「彙整報告」與「檢視結果樹」兩項為例:

目前為止的設定代表模擬50個使用者同時拜訪凌群電腦首頁(http://www.syscom.com.tw/index.aspx)的動作,按下上方工具列的「開始」按鈕即會按照設定開始動作(須先存檔),並且會將結果輸出到所設定的測試報告中:


但JMeter手動鍵入腳本的動作較為繁複,若想要模擬使用者進行一連串動作的狀況,或是某個網頁需要POST/GET大量參數,純粹手動鍵入並不是很方便,較理想的狀況是能讓我們直接操作網頁並將我們所做的操作進行錄製來得到腳本,匯入給JMeter使用。此時可以使用Badboy這套軟體。 Badboy網站:http://www.badboy.com.au Badboy的初始畫面:

開啟後不需做設定即是預備錄製的狀態,可直接在上方輸入網址:

在右方的窗格可如同一般的瀏覽器一樣對網站操作,而所作的步驟都會被記錄在左方的列表中,在此把網站上方的主選單通通點一遍:

在欲錄製的腳本完成後,選擇主選單上「File->Export To JMeter」,即可直接匯出為JMeter的腳本檔(.jmx):

以JMeter開啟腳本檔,對於網站的操作都已設定完畢,只要再設定執行緒數量與需要的報表,即可直接進行壓力測試:

參考資料 http://jmeter.apache.org/ http://www.badboy.com.au/