首页 文章

从junit测试启动jmeter

提问于
浏览
2

有没有办法在selenium / junit测试用例中集成一个记录的jmeter脚本(测试由多个用户执行的记录的一系列操作所施加的负载) . 这样我只用java执行selenium / junit测试用例,它给出了junit报告的性能结果?我发现帖子告诉如何将selenium webdriver集成到jmeter中,但不是相反 .

1 回答

  • 2

    您可以使用JMeter Java API执行现有的JMeter测试,示例代码如下所示:

    import org.apache.jmeter.engine.StandardJMeterEngine;
    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;
    
    public class JMeterFromCode {
    
        public static void main(String[] args) throws Exception {
    
            // JMeter Engine
            StandardJMeterEngine jmeter = new StandardJMeterEngine();
    
            // Initialize Properties, logging, locale, etc.
            JMeterUtils.loadJMeterProperties("/tmp/jmeter/bin/jmeter.properties");
            JMeterUtils.setJMeterHome("/tmp/jmeter");
            JMeterUtils.initLogging();// you can comment this line out to see extra log messages of i.e. DEBUG level
            JMeterUtils.initLocale();
    
            // Initialize JMeter SaveService
            SaveService.loadProperties();
    
            // Load Test Plan
            HashTree testPlanTree = SaveService.loadTree(new File("/tmp/jmeter/bin/test.jmx"));
    
            Summariser summer = null;
            String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");
            if (summariserName.length() > 0) {
                summer = new Summariser(summariserName);
            }
    
    
            // Store execution results into a .jtl file
            String logFile = "/tmp/jmeter/bin/test.jtl";
            ResultCollector logger = new ResultCollector(summer);
            logger.setFilename(logFile);
            testPlanTree.add(testPlanTree.getArray()[0], logger);
    
            // Run JMeter Test
            jmeter.configure(testPlanTree);
            jmeter.run();
        }
    }
    

    更换:

    • 所有出现的 /tmp/jmeter - 带有JMeter安装的路径

    • /tmp/jmeter/bin/test.jmx - 包含记录的JMeter脚本的.jmx文件的路径

    • /tmp/jmeter/bin/test.jtl - 包含.jtl结果文件的所需位置

    有关执行JMeter测试的可能性的更多信息,请参阅Five Ways To Launch a JMeter Test without Using the JMeter GUI文章,也许您会发现更简单的集成解决方案,因为JMeter测试可以通过Maven pluginAnt Task以及Selenium测试执行 .

相关问题