【问题标题】:JMeter ForEach controller with list of Objects not being iterated over带有未迭代对象列表的 JMeter ForEach 控制器
【发布时间】:2019-03-11 17:54:29
【问题描述】:

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

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

日志查看

【问题讨论】:

  • 对答案有任何反馈吗?我刚刚更新了它。

标签: groovy jmeter performance-testing jsr223 jmeter-5.0


【解决方案1】:

这是因为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()));

【讨论】:

  • 工作就像一个魅力!但仍然无法完全理解。任何要正确理解的链接/博客主要是 jsr223 + groovy ??
  • 阅读我链接的参考文档并在 groovy 中搜索 iterateWithIndex
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-13
  • 1970-01-01
  • 2015-05-06
  • 1970-01-01
  • 2023-03-09
相关资源
最近更新 更多