jmeter中的逻辑控制器确定采样器的执行顺序。右键线程组-->添加-->逻辑控制器。
一、简单控制器
简单控制器对JMeter如何处理添加到其中的采样器没有影响。只是方便我们做分组命名。
在以下计划中,向第一个简单控制器添加两个请求:"加载商品搜索页面"和“搜索商品A”,并将控制器命名“挑选商品”;向第二个简单控制器添加另两个请求:"加入购物车"和“支付”,并将控制器命名“支付操作”。运行结果可以看到,简单控制器不会对添加到其中的采样器产生影响。
二、循环控制器
如果将采样器或逻辑控制器添加到循环控制器,除了为线程组指定的循环值之外,JMeter还将循环它们一定次数。例如,如果将一个HTTP请求添加到循环计数为2的循环控制器,并将线程组循环次数设为3,则JMeter将发送总共2 * 3 = 6个 HTTP请求。
示例:
向线程组添加了一个登录请求,并设置线程组循环次数为1。并向循环控制器添加了另一个充值请求。我们将循环控制器配置为循环次数为5。
三、仅一次控制器
仅一次控制器将始终在任何循环父控制器的第一次迭代期间执行 。
1)如果放置在指定了多次循环次数的循环控制器下,那么仅一次控制器将仅在第一次迭代时通过循环控制器执行。
2)如果置于一个线程组,无论线程组设置多少循环次数,只在第一次迭代期间执行,即只执行一次。
1)线程组中循环次数设置为1,仅一次控制器放置在循环控制器下,向仅一次控制器添加一个登录请求;向循环控制器添加另一个充值请求,循环次数设置为5
jmeter按以下顺序发送请求:登录、充值、充值、充值、充值和充值
2)仅一次控制器置于线程组下,向仅一次控制器添加一个登录请求,向线程组添加另一个充值请求,设置线程组循环次数为5
四、交替控制器
如果将采样器或逻辑控制器添加到交替控制器,则JMeter将在每个其下的控制器之间交替进行每次循环迭代。
忽略子控制器块及跨线程交替默认不选中,若选中,参见以下说明:
交替控制器置于线程组下,向线程组添加一个”加载商品搜索页面“请求,线程组循环次数设为4;向交替控制器添加两个请求:“搜索A商品”、“搜索B商品”
五、随机控制器
随机控制器的作用类似于交替控制器,不同在于它不是通过其子控制器和采样器按顺序排列,而是在随机选取一个。
随机控制器置于线程组下,向线程组添加一个”加载商品搜索页面“请求,线程组循环次数设为4;向随机控制器添加两个请求:“搜索A商品”、“搜索B商品”
六、随机顺序控制器
随机顺序控制器类似简单控制器,区别在于该控制器下的节点请求执行顺序是随机的。
向随机顺序控制器中添加以下4个HTTP请求,运行后,可以看到该控制器下的4个HTTP请求顺序是随机的。