1.4 交替控制器
在交替控制器,JMeter将在每个循环迭代的其他控制器之间交替。通过右键在弹出菜单中选择“添加->逻辑控制器->交替控制器”,如图4所示。
图4 交替控制器
- 忽略子控制器:如果选中,交替控制器将像处理单个请求元素一样处理子控制器,并且一次只允许每个控制器一个请求。
- Interleave across threads:如果选中,交替控制器将在每个循环迭代的每个子控制器之间交替,但会跨越所有线程。
打开本书的配套程序Interleave.jmx。在线程组中设置1个线程运行3次,点击运行,如图5所示。
图5
交替控制器中的HTTP请求1和HTTP请求2交替进行。
把树状结构改成图6格式。
图6 没有子控制器
循环控制器中的循环次数设置为3,线程组中的循环次数仍旧为3。不选择忽略子控制器,运行结果如图7所示。
图7 有子控制器,不选择忽略子控制器
HTTP请求1按照配置执行了3次。选择忽略子控制器,运行结果如图8所示。
图8 有子控制器,选择忽略子控制器
HTTP请求仅执行了1次,循环控制器不生效。
禁用上面的交替控制器,启用下面的交替控制器,如图9所示。
图9 启用下面的交替控制器
线程组的循环次数改为4。运行如图10所示。
图10 交替控制器嵌套情况下运行情况
1.5 Runtime控制器
Runtime控制器控制其子对象的运行时间以及其子对象的运行时间。控制器将运行其子级,直到超过配置的运行时。通过右键在弹出菜单中选择“添加->逻辑控制器->
Runtime控制器”,如图11所示。
图11 Runtime控制器
- Runtime (seconds):所需的运行时间(秒)。0表示不运行。
1.6随机控制器
随机逻辑控制器的作用类似于交替控制器,不同之处在于随机控制器不是按顺序通过其子控制器和采样器,而是在每次通过时随机选取一个。通过右键在弹出菜单中选择“添加->逻辑控制器-> 随机控制器”,如图12所示。
图12 随机控制器
- 忽略子控制器:如果选中,随机控制器将像处理单个请求元素一样处理子控制器,并且一次只允许每个控制器一个请求。
打开本书的配套代码,random.jmx。运行,每次的结果是随机的。如图13所示。
图13 random.jmx及运行3次后的结果
1.7随机顺序控制器
随机顺序控制器很像一个简单的控制器,因为它最多执行一次每个子元素,但是节点的执行顺序是随机的。通过右键在弹出菜单中选择“添加->逻辑控制器->随机控制器”,如图14所示。
图14 随机顺序控制器
打开本书的配套代码,randomOrder.jmx。运行,每次的结果是随机的。如图15所示。
图15 randomOrder.jmx及运行2次后的结果