網站負載測試的終極兵器 – 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

廣告

One thought on “網站負載測試的終極兵器 – JMeter

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s