引入 while 循环时 Jmeter 不执行第二个循环

Jmeter not performing second loop when a while loop is introduced

我有如下场景, Post 一个有搜索栏的网页,我必须在其中搜索 5 个不同的字符串。

因此我创建了如下线程组, 线程数:3 迭代次数:2

在脚本中,我包含了一个 while 循环来使用 CSV 配置搜索 5 个字符串(在 csv 文件中添加了 5 个字符串)。

CSV 配置: 在 EOF 上回收:假 在 EOF 上停止线程:True

现在 jmx 只进行 1 次迭代,实际输出如下, 实际输出: URL 发布:3 位用户 x 1 次迭代 = 3 次点击 搜索命中:3 个用户 x 1 次迭代 x 5 个字符串 = 15 个命中

预期输出: URL 发射:3x2 = 6 次命中 搜索命中:3x2x5 = 30 次命中

您将无法使用 CSV 数据集配置和 While 控制器实现此目的,请考虑如下修改您的测试计划:

  1. 在 "Loop Count" 部分将 While Controller 更改为 Loop Controller and use the following __groovy() 函数:

    ${__groovy(new File('test.csv').readLines().size()  ,)}
    
  2. 不要从 CSV 中引用变量,而是使用 __StringFromFile() 函数,例如:

    ${__StringFromFile(test.csv,,,)}
    
  3. 只需将 test.csv 替换为您自己的 CSV 文件的完整路径或相对路径,您就可以开始了:

有关使用 JMeter 函数的更多信息:Apache JMeter Functions - An Introduction