網站負載測試的終極兵器 – JMeter

早已久聞 JMeter 大名,今天終於有機會來試用看看!據說它功能強大,又有完整的 UI 介面,是許多網站測試人員的第一指名,我們先來試試它到底容不容易上手?

安裝 JMeter

安裝 JMeter 實在很簡單,只要到官網下載它的 binary 壓縮檔,解壓縮到你指定的位置,之後再執行裡面的 jmeter.sh 就可以打開完整的 UI 介面。我所下載的版本是 2.11。

開一個 Http Server

先利用 Python 開一個簡單的 http server,以方便確認 JMeter 有正確發送多個 http 連線:

python -m SimpleHTTPServer

這樣就開啟了 port 為 8000 的 http server,而這個目錄下有一個圖檔為 test.png,所以在瀏覽器輸入

http://localhost:8000/test.png

就可以存取到這個圖檔。

設定 JMeter 以執行你預期的測試

我們想要測試的動作,是連續執行多個相同的 http 連線,確認 http server 的回應是否及時。

先在左邊的「測試計劃」點擊右鍵選「Add -> Threads (Users) -> 執行緒群組」,並在「執行緒群組」點擊右鍵選「Add -> 取樣 -> Http 要求」。

再來,你可以在右邊的設定畫面輸入你的 http 要求內容:
* 主機名稱或 IP:localhost
* 端口號碼:8000
* 路徑:test.png

其他值都維持預設即可。(請參考下圖)

summary

除了設定動作以外,你還需要在「測試計劃」加入報告項目,如「接聽 -> 彙整報告」以及「接聽 -> 檢視結果樹」,之後就可以在這兩個項目看到執行結果。

指定任意個數的 http 連線

在「執行緒群組」的設定畫面,你可以任意指定「執行緒數量」、「啟動延遲」、「迴圈次數」,我們先將「執行緒數量」設為 10,點擊上方 Menu Bar 的「執行 -> 開始」,看看 JMeter 有沒有幫我們測試 http 連線?請切換到剛剛打開 http server 的 Terminal,可以確實看到有 10 個連線的記錄,都是要存取 test.png 這個圖檔。

console

切回 JMeter 的「彙整報告」,可以看到完整數據結果,如 response time 的最小值 / 最大值 / 平均值 (in millisecond)、連線錯誤率、連線處理速度等等。因為現在是連線到本機 localhost,所以 response time 非常小。

彙整報告

至於「檢視結果樹」的部分,可以看到每個連線詳細資訊,包含 status code、header、response data。

結果樹

你可以去「執行緒群組」將連線數調大,來看看 http server 反應速度的變化。但千萬注意不要開太多 thread,如 10000,這很容易造成 JMeter 跑彩球、停止回應!

似乎這個簡單的測試只用到 JMeter 功能的百分之一!之後我們再慢慢來了解它的其他功能。

參考資料

Apache JMeter

對「網站負載測試的終極兵器 – JMeter」的一則回應

發表留言