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

Java 如何在Junit测试中运行Jmeter线程组,java,eclipse,jmeter,Java,Eclipse,Jmeter,嘿,我有一个关于在Junit中运行Jmeter的问题, 在Junit中调用JMX文件并在Jmeter中运行它是否可能?所有这些都将从eclipse中完成吗 例如: 步骤1验证数据库中的数据 步骤2获取属性 步骤3:通过Jmeter获取火灾数据 第4步验证Junit中的数据应该可以使用 确保JUnit项目类路径中有JMeter安装的“lib”和“lib/ext”文件夹中的所有.jar 使用类运行测试,如: import org.apache.jmeter.engine.StandardJMeter

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

例如: 步骤1验证数据库中的数据 步骤2获取属性 步骤3:通过Jmeter获取火灾数据
第4步验证Junit中的数据应该可以使用

  • 确保JUnit项目类路径中有JMeter安装的“lib”和“lib/ext”文件夹中的所有.jar
  • 使用类运行测试,如:

    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();
        }
    }
    

  • 更多信息:

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

    因为它主要是一种性能工具

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

    JUnit是为单元测试而设计的。在用Java编写性能测试时,有很多事情需要注意

    如果您希望使用JMeter进行单元测试,您可以通过以下方式在内部/使用JMeter添加单元测试:

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

    有几个工具来执行不同类型的测试也很好