有没有什么方法可以在一个硒/ junit测试用例中集成一个记录的jmeter脚本(它测试由多个用户执行的一系列记录的操作产生的负载)。这样我就可以用java执行那个selenium/junit测试用例,它给我提供了junit报告的性能结果? 我发现帖子说明如何将硒webdriver集成到Jmeter中,但不是其他方式。从junit测试启动jmeter
回答
您可以执行现有的使用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
- 带有.jmx文件的路径,其中包含已记录的JMeter脚本/tmp/jmeter/bin/test.jtl
- 与.jtl结果文件的所需位置
见Five Ways To Launch a JMeter Test without Using the JMeter GUI文章上执行的JMeter测试的可能性的更多信息,也许你会发现更容易的集成解决方案为JMeter的测试可以通过Maven plugin或执行Ant Task以及硒测试。
谢谢,这正是我想要的!有什么办法可以对报告的结果进行断言,使用相同的API?例如,如果总运行时间少于2秒,则测试应该通过。 – CodeMaker
在JMeter测试计划中,您可以使用[Duration Assertion](http://jmeter.apache.org/usermanual/component_reference.html#Duration_Assertion),检查out [如何在三个简单的步骤中使用JMeter断言](https://www.blazemeter.com/blog/how-use-jmeter-assertions-3-easy-steps)以获取详细信息。如果将JMeter相关代码包装到JUnit或TestNG测试中,您可以执行如下操作:'long before = System.currentTimeMillis(); //之后的长度为Jmeter的代码= System.currentTimeMillis();如果((之前 - >之前)> 2000){Assert.fail(“超过2秒的持续时间”);}' –
- 1. Android Junit测试Button已启动活动
- 2. 从jUnit测试
- 3. JUnit测试类未显示在JMeter中
- 4. Jmeter中的Junit测试套件
- 5. 的JUnit测试启动... getActivity不返回
- 6. JUnit测试不启动Selenium WebDriver
- 7. 启动时出现IllegalStateException Spring JUnit测试
- 8. 动态Junit测试
- 9. 负载测试的JUnit测试用例使用JMeter的
- 10. 春季启动JUNIT测试服务测试失败
- 11. JUnit无法启动JUnit插件测试。为什么?
- 12. 如何从jUnit测试中启动maven过滤?
- 13. 使用自定义JUnit运行器实现从eclipse插件启动JUnit测试
- 14. 用web驱动测试junit测试
- 15. junit和ant问题。当我正在从蚂蚁JUnit测试不能启动测试
- 16. 试图在JMeter中运行Selenium JUnit测试
- 17. 为什么JUnit测试试图启动Seam时会引发InstantiationException?
- 18. 自动组织JUnit测试
- 19. 从另一个JUnit测试类运行JUnit测试类
- 20. 如何自动启动JMeter HTTP(S)测试脚本记录器?
- 21. 使用@SpringApplicationConfiguration进行JUnit测试自动启动作业
- 22. 如何测试junit测试
- 23. Maven.surefire.util.SurefireReflectionException当测试Junit测试
- 24. Hangman JUnit测试
- 25. spring junit测试
- 26. RxJava2 JUnit测试
- 27. 春JUnit测试
- 28. JUnit测试AspectJ
- 29. JUnit测试后
- 30. Java JUnit测试
从来没有听说过这样的事情,但通常可以使用JMeter API和JUnit Runner。不是一件小事。我会建议使用Jenkins插件:https://wiki.jenkins-ci.org/display/JENKINS/JMeter+Plugin –
你能澄清你在问什么吗?你原来写的问题绝对没有意义。 jmeter和selenium是用于非常不同的事情的两种不同的工具,而junit只是一个测试框架。你究竟想要做什么? –
@Corey Goldberg,OP问题(从junit运行jmeter测试)是有道理的,它太大而无法回答 –