JMeter ForEach 控制器,其中包含未迭代的对象列表

JMeter ForEach controller with list of Objects not being iterated over

以下是我的测试计划。 ForEach 控制器应该循环遍历存储在用户定义变量 "userTaskIds" 中的所有任务 ID。我尝试用定义列表 两者 def myList = [] and List<Object> listId = new ArrayList<Object>();。在这两种情况下,它都无法循环。 ForEach 控制器不使用 "userTaskIds" 变量循环。在这里,我在数字之前尝试 with/without "add "_" ?"

以下是调试采样器结果和日志视图面板

日志视图

这是因为 ForEach Controller 期望这样:

  • userTaskIds_1
  • userTaskIds_2
  • ...

  • userTaskIds_matchNr = 出现次数

因此在您的 JSR223 脚本中,您需要在每次循环迭代中执行此操作:

将responseJSON.each替换为

  responseJSON.eachWithIndex {
     it, iterationLoop ->

然后

vars.put("userTaskIds_"+(iterationLoop+1), ""+it.id)

其中 iterationLoop 必须从 1 开始并递增。

循环后:

vars.put("userTaskIds_matchNr", Integer.toString(myList.size()));