控制器无法与2层循环

时间:2019-10-09 02:36:49

标签: jmeter

enter image description here

如上所述,我想在控制器上应用一个2层。他们每个人都有一个CSV数据集配置来检索输入。

说明一下

控制器外部:读取文件A

1

2

3

4

5

控制器内部:读取文件B

6

7

8

我想通过在控制器内部调用HTTP请求获得以下结果

1 * 6、1 * 7、1 * 8(外部while控制器第一次调用的结果)

2 * 6、2 * 7、2 * 8(外部while控制器第二次调用的结果)

...

5 * 6、5 * 7、5 * 8(外部while控制器第5次调用的结果)

============================================

但是,我只能获取内部while控制器的文件A的第一行。 Jmeter在第二次在外部while控制器上调用时停止。

在控制器工作时如何使2层成为可能?

1 个答案:

答案 0 :(得分:0)

  1. 确保您的CSV Data Set Config设置如下:

    enter image description here

  2. 将外部While Controller重命名为While Controller 1。您的2 While控制器需要具有不同的标签,以便您可以区分以__jm__<Name of your element>__idx
  3. 的形式通过JMeter Variable公开的当前迭代。
  4. 使用以下__groovy() function作为外部While Controller条件:

    ${__groovy((vars.get('__jm__While Controller 1__idx') as int) < new File('fileA.csv').readLines().size(),)}
    
  5. 将内部While控制器重命名为While Controller 2
  6. 使用以下__groovy()函数作为内部While控制器条件:

    ${__groovy((vars.get('__jm__While Controller 2__idx') as int) < new File('fileB.csv').readLines().size(),)}
    
  7. 就是这样,现在您应该获得所需的内部/外部循环组合:

    enter image description here