Jmeter 在事务中跳过 while 循环,我不知道为什么

问题描述 投票:0回答:1

我为性能测试制作了一个 jmeter 脚本,该脚本在事务中有两个步骤: 第一步在服务器中发布一些信息 下一步有一个 while 循环来请求信息,如果服务器没有写入它,请再试一次(基本上是一段时间,带有预期的答案和计数),对于一些样本来说它工作得很好。 问题是,在一些样本之后, while 步骤 si 就被跳过了。 我尽力检查线程中共享的变量是否存在问题(我更新预期答案的数据并使用 var“${__counter(TRUE,)}”创建计数器)。 但尽管如此,一段时间后的脚本只是忽略了 while 步骤。

欲了解更多信息: while 循环由逻辑控制器“while 控制器”构成。 Jmeter版本是5.1

以前有人遇到过同样的问题吗?谁能有一个可能的解决方案?

testing while-loop jmeter performance-testing
1个回答
0
投票

控制器的子级被执行,直到您用作条件的函数或变量被评估为

true

以下情况可以跳过:

  1. 您有变量
    foo
    ,其值为
    true
  2. Controller 循环直到
    foo
    变量变为
    false
  3. 如果在线程组级别上有另一次迭代,则变量仍然是
    false
    ,因此线程(虚拟用户)不会进入While控制器

因此,我建议使用 Debug Sampler 检查 While 控制器条件的每个部分,如果我的假设正确,只需在 While 控制器之前使用 JSR223 SamplerSet Variables Action Sampler 重置保存该值的变量即可.

© www.soinside.com 2019 - 2024. All rights reserved.