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 依赖项都具有相同的版本。

更多信息: