【问题标题】:JMeter scheduler doesn't stop after duration elapsed持续时间过去后,JMeter 调度程序不会停止
【发布时间】:2017-04-10 21:32:43
【问题描述】:

我想设置测试工作的持续时间。在我设置的线程组中

  • 线程数 = 1
  • 加速期 = 0
  • 选中“永远”
  • 选中“调度程序”
  • 持续时间 = 10
  • 启动延迟 = 0

因此,如果测试需要超过 10 秒才能完成,则经过的时间正确退出 - 10 秒。但是如果它需要,例如 5 秒,它会在 5 秒后停止,而不是像我预期的那样在 10 秒后停止。

如何使脚本在 Duration 时间过去之前工作?

UPD。 Screenshot of Thread Group settings

上次运行的日志:

2017/04/11 19:53:33 INFO  - jmeter.engine.StandardJMeterEngine: Running the test! 
2017/04/11 19:53:33 INFO  - jmeter.samplers.SampleEvent: List of sample_variables: [] 
2017/04/11 19:53:33 INFO  - jmeter.gui.util.JMeterMenuBar: setRunning(true,*local*) 
2017/04/11 19:53:33 INFO  - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group 
2017/04/11 19:53:33 INFO  - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group Thread Group. 
2017/04/11 19:53:33 INFO  - jmeter.engine.StandardJMeterEngine: Thread will continue on error 
2017/04/11 19:53:33 INFO  - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 1 ramp-up 0 perThread 0.0 delayedStart=false 
2017/04/11 19:53:33 INFO  - jmeter.threads.ThreadGroup: Started thread group number 1 
2017/04/11 19:53:33 INFO  - jmeter.engine.StandardJMeterEngine: All thread groups have been started 
2017/04/11 19:53:33 INFO  - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1 
2017/04/11 19:53:33 INFO  - jmeter.services.FileServer: Stored: data.txt 
2017/04/11 19:53:40 INFO  - jmeter.threads.JMeterThread: Stop Thread seen for thread Thread Group 1-1, reason:org.apache.jorphan.util.JMeterStopThreadException: End of file:data.txt detected for CSV DataSet:CSV get parameter for request configured with stopThread:true, recycle:false 
2017/04/11 19:53:40 INFO  - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-1 
2017/04/11 19:53:40 INFO  - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test 
2017/04/11 19:53:40 INFO  - jmeter.services.FileServer: Close: data.txt 
2017/04/11 19:53:40 INFO  - jmeter.gui.util.JMeterMenuBar: setRunning(false,*local*) 

【问题讨论】:

  • 你尝试了什么?显示您的代码。
  • JMeter 运行线程组,直到达到循环数或达到持续时间/结束时间 - 以先发生者为准。
  • @planetmaker,我发布了带有线程组设置和测试计划树的 GUI 屏幕截图。我出于我的目的使用 GUI。如果你的意思是我应该展示我的 .jmx 文件,我可以做到。
  • @NaveenKumarNamachivayam,我检查了“永远”而不是设置循环计数。这是我的一个问题——JMeter 有时会在达到持续时间之前停止。我读了手册,上面写着:注意这两个选项会覆盖开始时间和结束时间。 jmeter.apache.org/usermanual/test_plan.html

标签: jmeter


【解决方案1】:

假设您将循环计数设置为“永远”,您的测试应该运行 10 秒(如果 JMeter 需要正常关闭大量采样器,则运行时间更长)所以我的预期是发生错误或者您正在使用某种形式的测试结束逻辑,如Test Action 采样器的If Controller,触发过早停止。

当 JMeter 出现意外行为时,请务必检查 jmeter.log 文件 - 通常它包含足够的故障排除信息。如果您自己无法找出原因 - 在此处发布日志文件。

作为替代方案,您可以尝试Ultimate Thread Group,它提供了更高级的方法来定义负载模式,并附带预期负载图表。

可以使用JMeter Plugins Manager 安装 Ultimate Thread Group(以及任何其他插件)

【讨论】:

  • 嗨,德米特里。日志看起来不错。我从日志文件中附加了几行。如果没有插件我找不到解决问题的方法,我会尝试 Ultimate Thread Group。
  • 您的日志文件包含答案:请在您的CSV Data Set Config 中将“Stop Thread on EOF”设置为“False”,原因在 jmeter.log 中已明确说明文件:Stop Thread seen for thread Thread Group 1-1, reason:org.apache.jorphan.util.JMeterStopThreadException: End of file:data.txt detected for CSV DataSet:CSV get parameter for request configured with stopThread:true, recycle:false
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
  • 2018-02-19
  • 2015-05-04
  • 1970-01-01
  • 2012-01-25
相关资源
最近更新 更多