JMeter - 如何在单个线程组中循环“bsh.shared”ArrayList?
问题描述:
我在setUp线程组下有一个BeanShell PostProcessor。 我把ArrayList中进入“bsh.shared”命名空间,如:JMeter - 如何在单个线程组中循环“bsh.shared”ArrayList?
List personIdsList = new ArrayList();
...
bsh.shared.personIds = personIdsList;
我知道怎么读通过__BeanShell功能价值为:
${__BeanShell(bsh.shared.personIds)}
我想通过这个数组中循环其他线程组。 ($ {} PERSONID - 它应该从列表迭代值)
你能不能,请告诉我该怎么做?
谢谢!
答
最简单的方法将使用While Controller与像Counter测试元件一起:
-
添加在控制器到您的第二个线程组,并把下面的表达式为“条件”区域:
${__BeanShell(Integer.parseInt(vars.get("counter")) < bsh.shared.personIds.size()-1,)}
-
将计数器添加为While控制器的子项并对其进行如下配置:
- 开始:
0
- 增量:
1
- 最大:
${__BeanShell(bsh.shared.personIds.size()-1,)}
- 参考名称:
counter
- 开始:
- 请参阅“当前”人ID为
${__BeanShell(bsh.shared.personIds.get(Integer.parseInt(vars.get("counter"))),)}
在需要
非常感谢您的解决方案! 这是非常有帮助的,但我有一个问题。 在第1次迭代期间,计数器值未知。有没有解决方案? – yarafed