Web Analytics
Back
Featured image of post 將 JMeter Report 轉換 JUnit 格式,並透過 Azure Pipeline 發佈測試結果

將 JMeter Report 轉換 JUnit 格式,並透過 Azure Pipeline 發佈測試結果

讓測試人員在 Azure Pipeline 直接看測試結果

前言

怎樣的壓力測試結果是好的? 簡單來說,最佳的結果在於執行完測試後從 Client 端(JMeter) 到 Server 端 (包含應用程式、WebAPI、資料庫…等) 沒有發生錯誤嚴重延遲,即被視為通過測試。

一般來說,在壓力測試建構初期,可能因為尚未完整了解系統效能的瓶頸尚未處理效能問題,在您的測試報告中充滿錯誤訊息。但壓力測試一旦穩定後,就不需要向初期一樣密集測試頻繁檢測試報告,只需要檢視是否有錯誤發生即可 (除非有架構變更、大範圍程式碼或實作新功能)。

Azure Pipeline 可以接受 JUnit 格式結果檔案,將其轉換成圖形介面顯示在 Azure DevOps 網站上,SRE 可以簡單透過此圖形介面快速且清楚的了解測試結果,待有錯誤的時候再詳細檢視其分析報告。本篇文章皆介紹透過 Azure pipeline、xsltproc 與 xls 樣式檔案,將 JMeter 測試結果(.jtl 檔案) 轉換成為 JNnit 格式檔案,讓相關人員可以在 UI 介面上快速了解測試結果。

注意:JMeter 執行結果可以為 CSV (預設)或 XML 格式呈現,xslt 轉換需要使用 XML 格式,JMeter Report 需要使用 CSV 格式。

注意:若您尚未安裝過 JMeter 且未設定過 Azure Pipeline,可以參考 Azure Pipeline 以 PowerShell 方式執行 JMeter 壓力測試本篇文章是延續此文章實作

 

 

前置工作

在開始之前,您需要下載 jmeter-results-to-junit.xsl 樣板檔案xsltproc 轉換程式 到代理程式伺服器。

步驟 1. 將xsltproc 解壓縮至固定資料夾,記錄路徑,我們會在 Azure Pipeline 內的 PowerShell Task 內用到。

 

步驟 2. jmeter-results-to-junit 解壓縮,將 jmeter-results-to-junit.xsl 放置到 JMeter 安裝路徑下 extras 資料夾下。

 

 

Azure Pipeline 設定

步驟 1. 開啟 Azure Pipeline,加入 PowerShell Task, Type 選擇 Inline,輸入下列指令。三個指令內容分別為執行壓測透過 xsltproc 轉換測試結果為 JNuit 格式,以及最後將檔案設定為 UTF-8 格式 (Azure Pipeline 只接受 UTF-8 格式)

F:\tools\apache-jmeter-5.5\bin\jmeter.bat "-Jjmeter.save.saveservice.output_format=xml" -n -t "demo.jmx" -l result.jtl

F:\tools\xsltproc\xsltproc\bin\xsltproc.exe F:\tools\apache-jmeter-5.5\extras\jmeter-results-to-junit.xsl result.jtl > raw_result.xml

Get-Content .\raw_result.xml | Set-Content -Encoding UTF8 result.xml

 

步驟 2. 加入發佈測試結果 (Publish Test Result)

 

步驟 3. Test result format 選擇 JNunit;Test result files 更改為 **/result.xml

 

步驟 4. 執行成功後,您可以點選下載成品,檢視詳細的 JMeter Report。

 

步驟 5. 執行完成後,開啟 Pipeline 執行結果,即可看見 JUnit 測試結果以 UI 方式呈現

Built with Hugo   Theme Stack designed by Jimmy