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