【jmeter】jmeter報告視覺化:配置生成報告儀表板,jmeter+Jenkins自動化構建生成HTML報告
目錄
一、jmeter報告儀表板相關資訊
(1)點選前往檢視官網說明文件:生成報告儀表板配置說明文件
(2)點選前往檢視reportgenerator.properties檔案譯文:【jmeter】reportgenerator.properties :報表生成器屬性檔案譯文
(3)點選前往檢視user.properties檔案譯文:【jmeter】user.properties:使用者配置檔案譯文
(4)點選前往檢視介面HTML報告生成:【jmeter】Jmeter介面HTML視覺化測試報告——Jenkins+Jmeter+Ant自動化整合環境搭建
(5)相關配置檔案我的資源下載地址:【jmeter】jmeter報告視覺化:配置生成報告儀表板,jmeter+Jenkins自動化構建生成HTML報告配置檔案
二、檔案修改說明
儀表板生成使用JMeter屬性來自定義報告。某些屬性用於常規設定,其他屬性用於特定圖形配置或匯出器配置。
首先要先確認jmeter.properties檔案配置。
然後再配置user.properties檔案:
可以在檔案reportgenerator.properties中找到所有報告生成器屬性。
要自定義這些屬性,應將它們複製到user.properties檔案中並進行修改。
最後寫批處理bat檔案,也可部署到Jenkins,定時構建,定時更新報告,自動化報告輸出。
三、jmeter.properties檔案配置
jmeter.save.saveservice.output_format=csv jmeter.save.saveservice.assertion_results_failure_message=true jmeter.save.saveservice.data_type=true jmeter.save.saveservice.label=true jmeter.save.saveservice.response_code=true jmeter.save.saveservice.response_data=true jmeter.save.saveservice.response_data.on_error=false jmeter.save.saveservice.response_message=true jmeter.save.saveservice.successful=true jmeter.save.saveservice.thread_name=true jmeter.save.saveservice.time=true jmeter.save.saveservice.subresults=true jmeter.save.saveservice.assertions=true jmeter.save.saveservice.latency=true jmeter.save.saveservice.connect_time=true jmeter.save.saveservice.samplerData=true jmeter.save.saveservice.responseHeaders=true jmeter.save.saveservice.requestHeaders=true jmeter.save.saveservice.encoding=false jmeter.save.saveservice.bytes=true jmeter.save.saveservice.url=true jmeter.save.saveservice.filename=true jmeter.save.saveservice.hostname=true jmeter.save.saveservice.thread_counts=true jmeter.save.saveservice.sample_count=true jmeter.save.saveservice.idle_time=true jmeter.save.saveservice.timestamp_format=ms jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS
四、user.properties檔案配置
jmeter.reportgenerator.exclude_tc_from_top5_errors_by_sampler=true
jmeter.reportgenerator.exporter.html.filters_only_sample_series=true
jmeter.reportgenerator.exporter.html.show_controllers_only=false
jmeter.reportgenerator.apdex_satisfied_threshold=500
jmeter.reportgenerator.apdex_tolerated_threshold=1500
jmeter.reportgenerator.statistic_window = 20000
在檔案reportgenerator.properties中找到所有報告生成器屬性。
將它們複製到user.properties檔案中,並根據需要進行屬性自定義修改。
五、新建jtl報告目錄
新建jtl報告輸出目錄G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output,此目錄下一定要為空:
六、複製jmeter.properties檔案並重命名
(1)jmeter.properties檔案的jmeter.save.saveservice.output_format需要兩全,否則出現報錯:
由於介面HTML報告需要jmeter.properties檔案的jmeter.save.saveservice.output_format=xml,或者不設定這個欄位(註釋掉)才行,而設定成csv會報錯;
但是儀表盤Dashboard報告卻需要jmeter.properties檔案的jmeter.save.saveservice.output_format=csv,設定成xml或者不設定這個欄位(註釋掉)都會報錯。
(2)解決方案,複製jmeter.properties檔案:
一個檔案命名為jmeterxml.properties,該檔案:jmeter.save.saveservice.output_format=xml;
另一個檔案命名為jmetercsv.properties,該檔案:jmeter.save.saveservice.output_format=csv。
七、寫批處理bat檔案
注意:bat檔案的路徑和具體執行的報告輸出命令的指令碼名稱,需要按實際情況修改。
(1)新建目錄G:\Jmeter\apache-jmeter-5.0\Bat:
(2)在Bat目錄下新建以下檔名的bat檔案:
① DashboardOutReport.bat:
生成Dashboard儀表盤HTML報告的批處理檔案。
(會生成:
G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl 報告檔案、
G:\Jmeter\apache-jmeter-5.0\report\OutReport 目錄和目錄下的儀表盤HTML報告、
G:\Jmeter\apache-jmeter-5.0\report\report-output 目錄和目錄下的csv報告)
② DashboardOutReport-new-create.bat:
G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl檔案、
G:\Jmeter\apache-jmeter-5.0\report\OutReport目錄的存在判斷,若之前存在,則刪掉。
③ JmeterHtmlReport.bat:
生成介面HTML報告的批處理檔案。
(會生成:
G:\Jmeter\apache-jmeter-5.0\report\html目錄內的介面HTML報告、
G:\Jmeter\apache-jmeter-5.0\report\jtl目錄內的jtl報告)
④ JmeterHtmlReport-new-create.bat:
G:\Jmeter\apache-jmeter-5.0\report\jtl目錄下.jtl字尾名檔案存在判斷,若之前存在,則刪掉。
⑤ JmeterProperties-name.bat:
jmeter.properties檔案重新命名,確保可正常呼叫此檔案,最終也會保留1個jmeter.properties檔案的批處理命令。
(3) DashboardOutReport.bat檔案內的批處理命令:
@echo off
echo 重新命名jmetercsv.properties為jmeter.properties
G:
cd G:\Jmeter\apache-jmeter-5.0\Bat
call JmeterProperties-name.bat
cd G:\Jmeter\apache-jmeter-5.0\bin
reName jmetercsv.properties jmeter.properties
echo 刪除之前的result.jtl檔案和OutReport目錄
cd G:\Jmeter\apache-jmeter-5.0\Bat
call DashboardOutReport-new-create.bat
del /s /q G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl
rd /s /q G:\Jmeter\apache-jmeter-5.0\report\OutReport
echo 執行指令碼輸出Dashboard報告(wangyueche.jmx:要輸出報告的jmeter指令碼名稱,需自定義修改)
cd G:\Jmeter\apache-jmeter-5.0\bin
jmeter -n -t G:\Jmeter\apache-jmeter-5.0\workspace\wangyueche.jmx -l G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl -e -o G:\Jmeter\apache-jmeter-5.0\report\OutReport
(4)DashboardOutReport-new-create.bat檔案內的批處理命令:
@echo off
echo result.jtl檔案判斷
SET GenFile=G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl
if not exist %GenFile% (
rem 建立空檔案G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl
rem 如果需要新增內容,少量的,可以用內容把“nul”替換掉,比如:type 這是檔案內容>%GenFile%;多的話則使用複製方法
type nul>%GenFile%
echo %GenFile%檔案不存在,已建立該檔案!
) else (
rem 檔案G:\Jmeter\apache-jmeter-5.0\report\jtl-report-output\result.jtl已存在,無需建立
echo %GenFile%檔案已存在,無需建立!
)
echo OutReport目錄判斷
SET GenFolder=G:\Jmeter\apache-jmeter-5.0\report\OutReport
if not exist %GenFolder% (
rem 建立空目錄G:\Jmeter\apache-jmeter-5.0\report\OutReport
rem 建立非空目錄,使用複製方法
echo %GenFolder%目錄不存在,已建立該目錄!
md %GenFolder%
) else (
rem 目錄G:\Jmeter\apache-jmeter-5.0\report\OutReport已存在,無需建立
echo 目錄%GenFolder%目錄已存在,無需建立!
)
(5)JmeterHtmlReport.bat檔案內的批處理命令:
@echo off
echo 重新命名jmeterxml.properties為jmeter.properties
G:
cd G:\Jmeter\apache-jmeter-5.0\Bat
call JmeterProperties-name.bat
cd G:\Jmeter\apache-jmeter-5.0\bin
reName jmeterxml.properties jmeter.properties
echo 刪除之前的.jtl報告
cd G:\Jmeter\apache-jmeter-5.0\Bat
call JmeterHtmlReport-new-create.bat
del "G:\Jmeter\apache-jmeter-5.0\report\jtl"\***.jtl
echo 執行指令碼輸出HTML報告
cd G:\Jmeter\apache-jmeter-5.0\extras
ant.bat -file build.xml -Dtest=Test
(6)JmeterHtmlReport-new-create.bat檔案內的批處理命令:
@echo off
echo .jtl字尾名檔案判斷
SET GenFile="G:\Jmeter\apache-jmeter-5.0\report\jtl"\***.jtl
if not exist %GenFile% (
rem 建立空檔案G:\Jmeter\apache-jmeter-5.0\report\jtl\newfile.jtl
rem 如果需要新增內容,少量的,可以用內容把“nul”替換掉,比如:type 這是檔案內容>檔案路徑\新檔名;多的話則使用複製方法
type nul>G:\Jmeter\apache-jmeter-5.0\report\jtl\newfile.jtl
echo %GenFile%檔案不存在,已建立該檔案!
) else (
rem 檔案"G:\Jmeter\apache-jmeter-5.0\report\jtl"\***.jtl已存在,無需建立
echo %GenFile%檔案已存在,無需建立!
)
(7)JmeterProperties-name.bat檔案內的批處理命令:
@echo off
echo jmeter.properties檔案存在判斷
SET GenFileName=G:\Jmeter\apache-jmeter-5.0\bin\jmeter.properties
SET xmlFileName=G:\Jmeter\apache-jmeter-5.0\bin\jmeterxml.properties
SET csvFileName=G:\Jmeter\apache-jmeter-5.0\bin\jmetercsv.properties
if exist %GenFileName% (
rem 修改jmeter.properties檔名
if not exist %xmlFileName% (
rem 修改jmeter.properties檔名
cd G:\Jmeter\apache-jmeter-5.0\bin
reName jmeter.properties jmeterxml.properties
echo jmeter.properties檔案以重新命名為jmeterxml.properties!
) else (
rem 修改jmeter.properties檔名
cd G:\Jmeter\apache-jmeter-5.0\bin
reName jmeter.properties jmetercsv.properties
echo jmeter.properties檔案已重新命名為jmetercsv.properties!
)
echo %GenFileName%已重名成功!
) else (
echo %GenFileName%不存在,不用重名!
)
八、準備jmeter測試計劃指令碼
新建G:\Jmeter\apache-jmeter-5.0\workspace目錄:
九、本地除錯bat檔案
(1)雙擊DashboardOutReport.bat和JmeterHtmlReport.bat檔案會生成jmeter儀表盤報告
(2)bat檔案執行cmd視窗顯示中文亂碼的,解決方法:
【cmd】批處理:bat檔案執行,cmd會顯示中文亂碼,Jenkins日誌顯示中文亂碼——解決方案
(3)DashboardOutReport.bat執行成功後:
(4)meterHtmlReport.bat執行成功後:
十、Jenkins自動化構建
(1)Jenkins任務部署:
點選前往檢視我的另一博文:【jmeter】Jmeter介面HTML視覺化測試報告——Jenkins+Jmeter+Ant自動化整合環境搭建
@echo off
echo 執行並輸出apiHTML測試報告
G:
cd G:\Jmeter\apache-jmeter-5.0\Bat
call JmeterHtmlReport.bat
@echo off
echo 執行並輸出DashboardHTML測試報告
G:
cd G:\Jmeter\apache-jmeter-5.0\Bat
call DashboardOutReport.bat
(2)Jenkins執行成功,並且由於設定定時任務,還會自動在本地報告目錄按時更新HTML報告: