一、概述
JMeter是一款純Java開發的性能測試工具,由於其強大的能力和開源免費的特點,已被廣泛應用於各種Web應用的性能測試中。在測試過程中,生成報告是評估測試結果的重要手段之一。JMeter提供了多種方式生成報告,本文將重點介紹其中較常用的幾種方式,以及如何對報告進行配置和自定義。
二、JMeter默認報告
JMeter內置了一個簡單的報告生成器,可以生成測試結果的HTML報告。在JMeter中,通過勾選”Generate parent sample”和”Save response data”兩個選項,即可生成HTML報告。這種方式簡便快捷,對於簡單的應用測試來說足夠使用。
1、勾選"Generate parent sample"和"Save response data"選項;
2、在測試計劃中添加"View Results Tree"配置元件;
3、運行測試計劃,測試結束後在"View Results Tree"中點擊"Save Table Data"和"Save Tree Data";
4、通過"File" -> "Generate HTML Report" 生成HTML報告;
三、使用JMeter插件生成報告
除了內置的報告生成器外,JMeter還有豐富的插件可供選擇。常用的插件有”html report dashboard”和”jmeter plugins-manager”。這些插件可以為測試結果提供更詳細和專業的分析。下面將以”jmeter plugins-manager”為例進行說明。
“jmeter plugins-manager”是一個管理JMeter插件的工具,通過它可以安裝、更新和卸載插件。在使用該插件之前,需先安裝它。安裝方式如下:
1、下載插件安裝包(https://jmeter-plugins.org/install/Install/);
2、將安裝包解壓到JMeter的"lib/ext"目錄下;
3、重啟JMeter即可使用。
安裝成功後,在JMeter中將出現”Plugins Manager”菜單。
通過”Plugins Manager”菜單可以快速查找和安裝插件。安裝插件後,就可以在測試計劃中使用插件配置元件。以”jp@gc – Composite Graph”插件為例,操作步驟如下:
1、通過"Plugins Manager"菜單安裝"jp@gc - Composite Graph"插件;
2、在測試計劃中添加"jp@gc - Composite Graph"配置元件;
3、配置"jp@gc - Composite Graph"元件,輸入數據源;
4、運行測試計劃,測試結果將以"jp@gc - Composite Graph"的形式展示;
5、通過"File" -> "Save as Image 按鈕" 可以將測試結果保存為圖片;
四、使用Ant生成報告
JMeter自帶了使用Ant生成報告的實例腳本。使用Ant生成報告需要掌握一定的Ant知識,但相對於插件方式有更大的靈活性。
Ant是一種基於Java的自動化構建工具,可以自動化地執行編譯、測試、部署等任務。JMeter提供了一個基於Ant的實例腳本,可以生成測試報告。具體步驟如下:
1、下載"jmeter-ant"插件並解壓(https://apache.org/dyn/closer.cgi/jmeter/binaries/);
2、將解壓後的"extras"目錄下的"jmeter-results-report"和"jmeter-results-detail-report"文件夾拷貝到JMeter的"bin"目錄下;
3、編寫Ant腳本,腳本示例代碼如下:
<!DOCTYPE project PUBLIC "-//ANT//DTD Project//EN" "http://ant.apache.org/dtds/ant-1.9.1.dtd">
<project name="JMeter-report">
<target name="report">
<taskdef name="jmeterreport" classname="org.apache.jmeter.report.ant.ReportTask" classpath="${basedir}/lib/ext/ApacheJMeter_core.jar:${basedir}/lib/ext/ApacheJMeter_jms.jar:${basedir}/lib/ext/ApacheJMeter_http.jar:${basedir}/lib/ext/ApacheJMeter_java.jar:${basedir}/lib/ext/ApacheJMeter_functions.jar:${basedir}/lib/ext/ApacheJMeter_junit.jar:${basedir}/lib/ext/ApacheJMeter_ftp.jar:${basedir}/lib/ext/ApacheJMeter_mail.jar:${basedir}/lib/ext/ApacheJMeter_tcp.jar:${basedir}/lib/ext/ApacheJMeter_udp.jar:${basedir}/lib/log4j-core.jar:${basedir}/lib/log4j-api.jar:${basedir}/lib/slf4j-api.jar:${basedir}/lib/slf4j-log4j12.jar:${basedir}/lib/mockobjects-0.09.jar:${basedir}/lib/junit-4.13.jar:${basedir}/lib/hamcrest-core-1.3.jar:${basedir}/lib/slickerbox-0.9.jar:${basedir}/lib/xmlgraphics-commons-1.5.jar" />
<jmeterreport
source="${result.file}"
outputFormat="${output.format}"
dashboardConfiguration="${dashboard.file}"
/>
</target>
</project>
4、修改腳本中的具體參數,如"source"、"outputFormat"和"dashboardConfiguration"等;
5、運行腳本,即可生成測試報告。
五、自定義報告
JMeter提供了多種方式自定義報告,以滿足不同用戶的需求。常用的自定義方式有”BeanShell Listener”和”Response Assertion”等。
“BeanShell Listener”是一個靈活而強大的插件,可以通過編寫BeanShell腳本,實現自定義的報告格式。通過 “BeanShell Listener” 插件實現自定義報告,需要注意以下幾點:
1、確保插件已安裝;
2、在”Thread Group”下添加”BeanShell Listener”插件;
3、在腳本中自定義報告格式。
// 此處是一個簡單的示例腳本,將結果按照指定格式輸出
import java.io.FileWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String file = "result.log";
FileWriter writer = new FileWriter(file, true);
writer.write("\n\n" + df.format(new Date()) + " 測試報告:\n\n");
while (SampleResult is_next = SampleResult.getSamplerData()) {
writer.write(
"測試用例: "
+ is_next.getSampleLabel()
+ "\n"
+ "測試結果: "
+ is_next.isSuccessful()
+ "\n"
+ "響應時間: "
+ is_next.getTime()
+ " ms\n\n"
);
}
writer.close();
“Response Assertion”是JMeter中一種常用的測試腳本,用於在測試過程中驗證某些條件。通過”Response Assertion”插件生成詳細的斷言報告,需要注意以下幾點:
1、在”Thread Group”下添加”Response Assertion”配置元件;
2、配置”Response Assertion”條件,選擇”JMeter Report”格式即可。
六、總結
JMeter提供了多種方式生成報告,具備一定的靈活性和可定製性。如果需要生成更加專業和詳細的報告,可以通過插件、Ant腳本和自定義腳本等方式實現。通過深入學習JMeter報告生成的使用和應用,可以更好地進行Web應用性能測試。
原創文章,作者:UFMGB,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/361921.html