Jmeter HTML 报告未使用 Java 代码生成
Jemeter HTML report is not getting generated using Java code
我正在执行一个 JMX 文件并尝试为该文件创建一个 HTML 仪表板报告,但只有 .jtl 文件正在创建,HTML 仪表板文件没有被创建。我正在错误 :
org.apache.jmeter.report.dashboard.GenerationException: Class 名称“org.apache.jmeter.report.dashboard.JsonExporter”无效。
我试过下面的代码:
public static void generateReport(String reportName,ExtentTest testReporter) {
try {
JMeterUtils.setProperty("jmeter.reportgenerator.exporter.html.property.output_dir", reportDirectory + reportName);
JMeterUtils.setProperty("org.apache.jmeter.JMeter.JMETER_REPORT_OUTPUT_DIR_PROPERTY", reportDirectory + reportName+"Test");
String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");
if (summariserName.length() > 0) {
summer = new Summariser(summariserName);
}
File report = new File(reportDirectory + reportName + "_JTL_Results");
File reportFile = new File(reportDirectory + reportName + "_JTL_Results" + "\result.jtl");
if (report.exists()) {
flushDirectory(report);
LOG.info("Report folder deleted");
if (reportFile.exists()) {
boolean delete1 = reportFile.delete();
LOG.info("Report File deleted" + delete1);
}
}
ResultCollector logger = new ResultCollector(summer);
reportGenerator = new ReportGenerator(reportFile.getPath(), logger);
logger.setFilename(reportFile.getPath());
testplanTree.add(testplanTree.getArray()[0], logger);
jMeterEngine.configure(testplanTree);
print_util.ts_info(testReporter, "Performance Execution Started..........");
print_util.ts_passed(testReporter, "Performance Execution Started..........");
jMeterEngine.run();
reportGenerator.generate();
print_util.ts_info(testReporter, "Report Generated Successfully");
print_util.ts_passed(testReporter, "Report Generated Successfully");
System.exit(0);
} catch (Exception e) {
print_util.ts_info(testReporter, e.toString());
print_util.ts_failed_ss(testReporter,
"Report is not generated", VNSPPage.driver);
org.testng.Assert.fail("Report is not generated");
System.exit(1);
}
}
为了生成 HTML 报告仪表板,您需要定义以下 properties:
JMeterUtils.setProperty("jmeter.reportgenerator.exporter.html.classname", "org.apache.jmeter.report.dashboard.HtmlTemplateExporter");
JMeterUtils.setProperty("jmeter.reportgenerator.exporter.html.property.output_dir","report-output/dashboard");
关于 org.apache.jmeter.report.dashboard.JsonExporter
class 问题 - 它应该出现在 ApacheJMeter_core.jar so make sure to have this file in your project classpath 中。还要确保所有 JMeter 依赖项都具有相同的版本。
更多信息:
我正在执行一个 JMX 文件并尝试为该文件创建一个 HTML 仪表板报告,但只有 .jtl 文件正在创建,HTML 仪表板文件没有被创建。我正在错误 : org.apache.jmeter.report.dashboard.GenerationException: Class 名称“org.apache.jmeter.report.dashboard.JsonExporter”无效。 我试过下面的代码:
public static void generateReport(String reportName,ExtentTest testReporter) {
try {
JMeterUtils.setProperty("jmeter.reportgenerator.exporter.html.property.output_dir", reportDirectory + reportName);
JMeterUtils.setProperty("org.apache.jmeter.JMeter.JMETER_REPORT_OUTPUT_DIR_PROPERTY", reportDirectory + reportName+"Test");
String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");
if (summariserName.length() > 0) {
summer = new Summariser(summariserName);
}
File report = new File(reportDirectory + reportName + "_JTL_Results");
File reportFile = new File(reportDirectory + reportName + "_JTL_Results" + "\result.jtl");
if (report.exists()) {
flushDirectory(report);
LOG.info("Report folder deleted");
if (reportFile.exists()) {
boolean delete1 = reportFile.delete();
LOG.info("Report File deleted" + delete1);
}
}
ResultCollector logger = new ResultCollector(summer);
reportGenerator = new ReportGenerator(reportFile.getPath(), logger);
logger.setFilename(reportFile.getPath());
testplanTree.add(testplanTree.getArray()[0], logger);
jMeterEngine.configure(testplanTree);
print_util.ts_info(testReporter, "Performance Execution Started..........");
print_util.ts_passed(testReporter, "Performance Execution Started..........");
jMeterEngine.run();
reportGenerator.generate();
print_util.ts_info(testReporter, "Report Generated Successfully");
print_util.ts_passed(testReporter, "Report Generated Successfully");
System.exit(0);
} catch (Exception e) {
print_util.ts_info(testReporter, e.toString());
print_util.ts_failed_ss(testReporter,
"Report is not generated", VNSPPage.driver);
org.testng.Assert.fail("Report is not generated");
System.exit(1);
}
}
为了生成 HTML 报告仪表板,您需要定义以下 properties:
JMeterUtils.setProperty("jmeter.reportgenerator.exporter.html.classname", "org.apache.jmeter.report.dashboard.HtmlTemplateExporter");
JMeterUtils.setProperty("jmeter.reportgenerator.exporter.html.property.output_dir","report-output/dashboard");
关于 org.apache.jmeter.report.dashboard.JsonExporter
class 问题 - 它应该出现在 ApacheJMeter_core.jar so make sure to have this file in your project classpath 中。还要确保所有 JMeter 依赖项都具有相同的版本。
更多信息: