前言
壓力測試主要可以分成兩種類型:瓶頸測試或效能測試。前者在於測試服務負載最大極限,通常需要透過分散方式執行測試 (即多部 JMeter Server 執行測試);後者為確定服務在一定負載量期間可以正常運作,通常可以使用單一 JMeter (或較少數量 JMeter Server) 執行測試。一般來說,大多數的軟體與服務不需要高流量,而是在正常的使用情境下,避免修改程式導致效能低弱情況發生。
實作
Step 1. 在代理程式所在的伺服器安裝 Java 與 JMeter,解壓縮後至固定的位置 (如解壓縮在 F:\Tools 資料夾),我們將透過此路徑在 Azure Pipeline 執行 JMeter 指令。
注意:您可以將此路徑設定在環境變數 Path 內 (需要重啟 Agent 服務),即可以不需要紀錄此路徑執行命令
Step 2. 將 JMeter 腳本 (.jmx 檔案) 上傳至 Azure Repos (Git)。
Step 3. 接下來,我們開始建立 Azure Pipeline,點選左邊選單 Pipeline,點選右上角 New Pipeline
Step 4. 選擇傳統編輯器 (您也可以使用 YAML)
Step 6. 選擇正確的 Repository 來源,點選 Continue 按鈕
Step 7. 選擇 Empty Job
Step 8. 更改 Pipeline 名稱並設定執行的 Agent 所在的 Agent Pools (剛剛安裝 JMeter 的代理程式伺服器)
Step 9. 加入 Powershell Task,
Step 10. 輸入下列 JMeter 指令 (JMeter 指令說明可以參考 Meter Command line mode and report dashboard 指令操作模式與報表儀表板)
注意: 產生報告時指定的名稱不能重覆
F:\tools\apache-jmeter-5.5\bin\jmeter.bat -n -t "demo.jmx" -l result.jtl
$name = Get-Date -Format yyyymmddHHmmss
F:\tools\apache-jmeter-5.5\bin\jmeter.bat -g result.jtl -o $name
Step 11. 加入上傳成品Task (Puhish Build Artifact),將 Path to Publish 更改成為 $(Build.SourcesDirectory)
Step 12. 完成後,點選儲存並執行。
Step 13. 執行成功後,您可以點選下載成品,檢視詳細的 JMeter Report。
其他建議
-
壓力測試具有執行時間較長、不需要頻繁執行與執行期間可能消耗大量資源等特性,建議可以安排在離峰時間執行 (下班後或週末)。您可以設定觸發條件自動執行 Azure Pipeline。
-
若有多個測試參數 (不同人數、機器等),可以考慮透過指令方式傳遞參數。您可以參考 How to Use Command Line Parameters in JMeter