嘿所有我有一个关于在Junit中运行Jmeter的问题, 是否有可能在Junit中调用JMX文件并在Jmeter中运行它?一切都将从日食中完成?
例如: 步骤1验证DB中的数据 第2步获取属性 步骤3通过Jmeter发射数据 第4步验证Junit中的数据
答案 0 :(得分:1)
应该可以使用JMeter API。
使用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();
}
}
更多信息: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的类。
使用多种工具执行不同类型的测试
还不错