我为性能测试制作了一个 jmeter 脚本,该脚本在事务中有两个步骤: 第一步在服务器中发布一些信息 下一步有一个 while 循环来请求信息,如果服务器没有写入它,请再试一次(基本上是一段时间,带有预期的答案和计数),对于一些样本来说它工作得很好。 问题是,在一些样本之后, while 步骤 si 就被跳过了。 我尽力检查线程中共享的变量是否存在问题(我更新预期答案的数据并使用 var“${__counter(TRUE,)}”创建计数器)。 但尽管如此,一段时间后的脚本只是忽略了 while 步骤。
欲了解更多信息: while 循环由逻辑控制器“while 控制器”构成。 Jmeter版本是5.1
以前有人遇到过同样的问题吗?谁能有一个可能的解决方案?
控制器的子级被执行,直到您用作条件的函数或变量被评估为
true
以下情况可以跳过:
foo
,其值为 true
foo
变量变为 false
false
,因此线程(虚拟用户)不会进入While控制器因此,我建议使用 Debug Sampler 检查 While 控制器条件的每个部分,如果我的假设正确,只需在 While 控制器之前使用 JSR223 Sampler 或 Set Variables Action Sampler 重置保存该值的变量即可.