如何通过Java编码生成Jmeter仪表板报告不是Windows或Shell命令

问题描述

  1. 首先,您需要在生成报告仪表板之前生成一个.jtl结果文件,因此请确保将以下代码块添加到您的函数中:
        Summariser summer = null;
    String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");
    if (summariserName.length() > 0) {
        summer = new Summariser(summariserName);
    }
    String logFile = "/path/to/result.jtl";
    ResultCollector logger = new ResultCollector(summer);
    logger.setFilename(logFile);

    testPlanTree.add(testPlanTree.getArray()[0], logger);
  1. 然后,您需要设置HTML Reporting Dashboard目标:
        JMeterUtils.setProperty(JMETER_REPORT_OUTPUT_DIR_PROPERTY, "/where/you/want/the/dashboard/to/be/generated");
  1. 最后,您可以像这样调用ReportGenerator类:
        ReportGenerator generator = new ReportGenerator(logFile,null);
    generator.generate();

完整的代码,以防万一:

    import org.apache.jmeter.engine.StandardJMeterEngine;
    import org.apache.jmeter.report.dashboard.ReportGenerator;
    import org.apache.jmeter.reporters.ResultCollector;
    import org.apache.jmeter.reporters.Summariser;
    import org.apache.jmeter.save.SaveService;
    import org.apache.jmeter.util.JMeterUtils;
    import org.apache.jorphan.collections.HashTree;

    import java.io.File;

    import static org.apache.jmeter.JMeter.JMETER_REPORT_OUTPUT_DIR_PROPERTY;

    public class RunJMeterTest {

        public static void main(String[] args) throws Exception {
            StandardJMeterEngine jmeter = new StandardJMeterEngine();
            JMeterUtils.loadJMeterProperties("/path/to/your/jmeter/bin/jmeter.properties");
            JMeterUtils.setJMeterHome("/path/to/your/jmeter");
            JMeterUtils.initLocale();
            SaveService.loadProperties();
            HashTree testPlanTree = SaveService.loadTree(new File("/path/to/your/jmeter/bin/test.jmx"));
            Summariser summer = null;
            String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");
            if (summariserName.length() > 0) {
                summer = new Summariser(summariserName);
            }
            String logFile = "/path/to/your/jmeter/bin/result.jtl";
            ResultCollector logger = new ResultCollector(summer);
            logger.setFilename(logFile);
            testPlanTree.add(testPlanTree.getArray()[0], logger);
            jmeter.configure(testPlanTree);
            jmeter.run();
            JMeterUtils.setProperty(JMETER_REPORT_OUTPUT_DIR_PROPERTY, "/path/to/dashboard");
            ReportGenerator generator = new ReportGenerator(logFile, null);
            generator.generate();
        }
    }

参考文献:

解决方法

我必须通过Java编码生成Jmeter仪表板报告。在Java代码下面,我曾用来生成普通的jmeter报告。我必须通过Java生成仪表板报告。

  public class JMeterFromExistingJMX {

    public static void main(String[] argv) throws Exception {
        // JMeter Engine
        StandardJMeterEngine jmeter = new StandardJMeterEngine();
        // Initialize Properties,logging,locale,etc.
        // JMeterUtils.loadJMeterProperties
        ("/path/to/your/jmeter/bin/jmeter.properties");
        JMeterUtils.setJMeterHome("/path/to/your/jmeter");
        JMeterUtils.initLogging();// log
        JMeterUtils.initLocale();
        // Initialize JMeter SaveService
        SaveService.loadProperties();
        // Load existing .jmx Test Plan
        FileInputStream in = new 
         FileInputStream
       ("/path/to/your/jmeter/extras/Test.jmx");
        HashTree testPlanTree = SaveService.loadTree(in);
        in.close();

        // Run JMeter Test
        jmeter.configure(testPlanTree);
        jmeter.run();
    }
    }

    }

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...