使用Jmeter java客户端断言平均时间和标准差

时间:2018-02-13 13:15:26

标签: jmeter jmeter-plugins jmeter-3.2 jmeter-analysis-maven-plugin

我一直在使用ApacheJMeter_core和ApacheJMeter_http库从java Junit文件创建和运行Jmeter testplan。

我的测试计划属于以下结构

  • POST线程组

    • POST api呼叫持续时间为20秒
  • 获取线程组

    • 持续20秒的GET api通话

为每个线程组添加了Summariser

当我设置loopController.setLoops(<some value>);时,我可以在系统输出

下面看到正确的日志

GET_Result = 16 in 00:00:01 = 15.8/s Avg: 61 Min: 4 Max: 287 Err: 0 (0.00%) POST_Result = 4 in 00:00:01 = 3.9/s Avg: 260 Min: 36 Max: 485 Err: 0 (0.00%)

但是当我使用loopController.setContinueForever(true); and getThreadGroup.setScheduler(true);getThreadGroup.setDuration(20); postThreadGroup.setScheduler(true);postThreadGroup.setDuration(20);时,我看不到在系统日志中打印结果。

日志如下

0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max: -9223372036854775808 Err:     0 (0.00%)

我错过了什么吗?感谢任何帮助

我还想知道如何在Junit文件中声明值。是否有可能获得Avg,结果的标准偏差并断言值

由于

1 个答案:

答案 0 :(得分:0)

替换

loopController.setContinueForever(true);

loopController.setLoops(-1);

有关无头JMeter测试执行的不同方式(包括程序化)的更多信息,请参阅Five Ways To Launch a JMeter Test without Using the JMeter GUI文章。

请注意,唯一正式建议的创建JMeter测试的方法是通过JMeter GUI,存在其他方法,但您自己承担使用它们的风险。以编程方式创建JMeter测试的最简单方法是使用Taurus工具。