如何在Junit测试中运行Jmeter线程组

时间:2018-03-13 13:41:38

标签: java eclipse jmeter

嘿所有我有一个关于在Junit中运行Jmeter的问题, 是否有可能在Junit中调用JMX文件并在Jmeter中运行它?一切都将从日食中完成?

例如: 步骤1验证DB中的数据 第2步获取属性 步骤3通过Jmeter发射数据 第4步验证Junit中的数据

2 个答案:

答案 0 :(得分:1)

应该可以使用JMeter API

  1. 确保JUnit项目类路径中JMeter安装的“lib”和“lib / ext”文件夹中包含所有.jars
  2. 使用StandardJMeterEngine类来运行您的测试,如:

    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 org.junit.Test;
    
    import java.io.File;
    
    public class YourJUnitTestClass {
    
        @Test
        public void runJMeter() throws Throwable {
            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/Test.jmx"));
            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);
            jmeter.configure(testPlanTree);
            jmeter.run();
        }
    }
    
  3. 更多信息:Five Ways To Launch a JMeter Test without Using the JMeter GUI

答案 1 :(得分:0)

您正在尝试在JUnit测试中执行JMeter,这是一种错误的方法,

因为JMeter主要是表演工具

  

Apache JMeter可用于测试静态和动态资源,Web动态应用程序的性能。   它可用于模拟服务器,服务器组,网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。

junit is not suitable for performance test

  

JUnit专为单元测试而设计。在Java中编写性能测试时需要注意很多事情

您可以做什么如果您希望使用JMeter进行单元测试,请在{Jmter内添加单元测试JUnit Sampler

  

类名   要测试的类的名称。采样器将扫描jmeter / lib / ext和jmeter / lib / junit中的jar文件,以获取扩展JUnit的TestCase的类。

使用多种工具执行不同类型的测试

还不错