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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Junit测试中运行Jmeter线程组相关的知识,希望对你有一定的参考价值。

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

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

答案

应该可以使用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(); } }

更多信息:Five Ways To Launch a JMeter Test without Using the JMeter GUI

另一答案

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

因为JMeter主要是一种表演工具

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

junit is not suitable for performance test

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

你能做什么如果你想使用JMeter进行单元测试是在JUnit Sampler内部/使用JMeter添加单元测试

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

拥有多种工具来执行不同类型的测试也是可以的

以上是关于如何在Junit测试中运行Jmeter线程组的主要内容,如果未能解决你的问题,请参考以下文章

我们可以在 Jmeter 的一个测试计划中并行运行两个线程组吗?

我们可以在Jmeter的单个测试计划中并行运行两个线程组吗?

如何使用jmeter进行接口测试

使用 JMeter 进行测试:如何每秒运行 N 个请求

如何将用户定义的变量值限制为jmeter中的特定线程组

1.Jmeter之测试计划