1. 程式人生 > >【jmeter】jmeter報告視覺化:配置生成報告儀表板,jmeter+Jenkins自動化構建生成HTML報告

【jmeter】jmeter報告視覺化:配置生成報告儀表板,jmeter+Jenkins自動化構建生成HTML報告

目錄

一、jmeter報告儀表板相關資訊

二、檔案修改說明

三、jmeter.properties檔案配置

四、user.properties檔案配置

五、新建jtl報告目錄

六、複製jmeter.properties檔案並重命名

七、寫批處理bat檔案

八、準備jmeter測試計劃指令碼

九、本地除錯bat檔案

十、Jenkins自動化構建



一、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報告: