首页 > 解决方案 > Jmeter:为什么我的线程在一个循环完成后没有重新启动?

问题描述

我有以下测试计划 i Jmeter:

现在,我的问题是,当满足 If 控制器的条件时,在线程完成后,它会按预期循环。但是,如果不满足 If 控制器的条件,则线程完成后,运行停止,不会发生循环。

在线程组设置中,我有“Loop = 50”和“错误操作:开始下一个线程循环”

在系统的日志中,根本没有错误。

有任何想法吗?

标签: loopsjmeter

解决方案


如果不满足条件,则不会执行 If Controller 的子级,并且您将不会在 jtl 结果文件中看到它们。

如果您在 If 控制器之后添加一个虚拟采样器,您将看到虚拟采样器将针对每个虚拟用户执行 50 次。

还有一些建议:

  1. 从 JMeter 3.1 开始,您应该使用 JSR223 测试元素和 Groovy 语言编写脚本
  2. 根据JMeter 范围规则,您的 BeanShell 后处理器将在每个采样器之后执行,我不知道它到底在做什么,但目前它正在每个采样器之后执行,因此可能是它正在清理您在 While 或如果控制器。

推荐阅读