介紹

JMeter是一套 Java-based、開源的測試工具,能對於您的網站進行功能與壓力測試。支援豐富的通訊協定、前(後)置處理、腳本撰寫、報表呈現與使用者變數功能,讓測試人員能夠撰寫符合產品測試的情境,達到有效的測試。JMeter 操作介面容易,也提供錄製腳本的功能與結果報表,功能相當強大。本系列文章若有任何錯誤或建議,請各位先進不吝指導,謝謝。
本系列文章目錄如下(暫定,會更改):
  1. JMeter Introduction 介紹與基本操作
  2. JMeter Variables and Properties 變數與性質
  3. JMeter Wait, Loop, and Random 等待、迴圈與隨機數
  4. JMeter BeanShell 介紹與撰寫
  5. JMeter Preprocessor and  Postprocessor 前置處理器與後製處理器
  6. JMeter Command line mode and report dashboard 指令操作模式與報表儀表板
  7. JMeter Remote Test 遠端測試
  8. 在 Azure DevOps 執行 JMeter 壓力測試 (Load Test)
  9. JMeter Plugin 伺服器監控 (Servers Performance Monitor) 
  10. 附錄: JMeter Recording Controller 進階操作 錄製控制器
  11. 附錄: [IIS] Performance tunning for WebAPI
  12. JMeter An error occurred: Data exporter "html" is unable to export data

在這一篇,我們將簡單介紹如何使用JMeter,內容如下:
  1. 下載與安裝
  2. 第一個網站壓力測試腳本
  3. 設定報表
  4. 測試
本篇文章原為 2013年3月1日 JMeter 基本操作,於第八屆 IT邦幫忙鐵人賽重新撰寫,於2017年5月改寫作為 JMeter 系列文章內容之一。

下載與安裝

JMeter網站,點選 JMeter.zip 下載,並且解壓縮。

開啟資料夾 bin,點選 jmeter.bat (或 AppacheJMeter.jar) 即可開啟圖形化介面進行操作。




第一個網站壓力測試腳本

首先,我們對於簡易腳本所用到的各項目進行介紹:
Thread Group(執行序群組): 執行緒相關設定(執行緒視為多少使用者的意思),可設定延遲幾秒開始、多少Thread(使用者)進行測試、重複進行幾次與是否依序執行(多群組時可用)...等相關功能。
HTTP Header Manager (HTTP 標頭管理員):因本範例對象為網站,需要對網站發送請求(request)。我們能在這裡依據需求設定發送時 header的內容。
HTTP Request Defaults (HTTP 要求預設值):設定 HTTP Request 預設內容, 後續增加的 HTTP Request 就不需要每個欄位都輸入。例如測試網址與連接埠,若有設定預設值,則後續每一個 HTTP request 就不需要填寫(但後續 HTTP request 有內容會覆寫預設值)。
HTTP Request (HTTP 要求):設定 HTTP Request 內容,可以設定網址、連接埠Get/Post、Body、Path與encoding ...等內容。

下面我們開始操作步驟:
Step 1.對測試計畫點選右鍵 -> 新增 -> Thread(users) -> 執行序群組,這裡可調整執行執行序數量、延遲時間與迴圈數度,模擬使用者操作情境。



Step 2.右鍵點選執行緒群組,新增 -> 設定元素 -> HTTP標頭管理員。因為此範例為直接測試網頁,故這裡我們隨意可以輸入content-type為applicaion/json,您可以依據測試需求進行調整(這邊僅讓您知道如何設定 Header)。

Step 3.右鍵點選測試計畫,新增 -> 設定元素 -> HTTP要求預設值。因為為預設值設定,通常我們設定網址、連接埠等基本訊息,而後續 HTTP要求 不需要重複輸入。


Step 4.右鍵點選執行緒群組,新增 -> 取樣 -> HTTP要求。從此開始撰寫每一個 HTTP 要求,直到完成你的測試劇本為止。

我們等一下的測試範例為 .Net Core Web Application 的範例專案,我們的測試路徑為 /Home/About


設定報表

Step 1.右鍵點選測試計畫,新增 -> 接聽 -> 檢視結果樹


Step 2.右鍵點選測試計畫,新增 -> 接聽 -> 檢視表格式結果


測試

Step 1.我們使用Visual Studio 2015(須更新update 3),開啟一個MVC專案。

Step 2.執行這個專案並確認網頁顯示(專案port不同,請記得修改你的 HTTP 要求預設值HTTP 要求)
Step 3.我們執行JMeter,並檢視相關報表,可以看見壓力測試詳細結果。




後記

藉由調整 Thread Group 的設定,您可以模擬多少使用者與重複幾次點擊網頁動作,撰寫符合壓力測試需求的腳本,進而檢視系統負載程度。下一篇我們將介紹更多圖形化介面的功能。