0

我正在执行一个 JMX 文件并尝试为其创建一个 HTML 仪表板报告,但只创建 .jtl 文件,没有创建 HTML 仪表板文件。我收到错误:org.apache.jmeter.report.dashboard。 GenerationException:类名“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);
        }
    }

4

1 回答 1

0

为了生成 HTML 报告仪表板,您需要定义以下属性

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类问题 - 它应该存在于ApacheJMeter_core.jar中,因此请确保在您的项目 classpath中有此文件。还要确保所有 JMeter 依赖项具有相同的版本。

更多信息:

于 2021-10-13T15:37:08.687 回答