【问题标题】:JMeter while loop does not detect EOFJMeter while循环未检测到EOF
【发布时间】:2016-02-18 10:00:11
【问题描述】:
我想做“当”控制器从 JMeter 中的 CSV 读取 EOF 时转到下一个控制器。 while 循环停止,但它又迭代了 1 次,我的意思是说它在检测到 EOF 时不需要迭代。当我在 EOF 值上选择 Stop thread 为“True”时。 while 循环停止并且不会进入下一个循环。
当 CSV 文件检测到 EOF 而不重复一个循环时,我需要转到下一个循环控制器。
提前致谢。
【问题讨论】:
标签:
loops
csv
while-loop
jmeter
eof
【解决方案1】:
从BlazeMeter - Using the While Controller in JMeter 上的这篇帖子中,我发现您可以将 While 控制器 与 If 控制器 结合使用以获得所需的结果。
在 while 和 if 控制器中控制迭代的条件如下。
${__javaScript("${myVar}" != "<EOF>",)}
注意:确保将变量 ${myVar} 替换为 csv 文件中的变量。
您需要使用 If 控制器 来防止额外的循环迭代,因为 while 循环实际上是在执行评估的。
您的所有示例都是 If 控制器的子级。
原帖很好地解释了这一切。
【解决方案2】:
在您的 CSV 配置中,将 Recycle on EOF? 的设置更改为 false。
【解决方案3】:
在您的 CSV 配置中更改以下设置:-
- 在 EOF = False 时回收
- 在 EOF = True 时停止线程