Jmeter学习:控制器--吞吐量控制器/模块控制器/开关控制器/交替控制器
一、吞吐量控制器
控制器配置:
Based on:可选择按照百分比,或者总数执行。
Throughput:当Based on选择总数时,该处代表线程组执行的总次数,填写的值要小于等于线程迭代数,否则无意义。
当Based on选择百分比时,执行总数=线程组迭代次数 * 百分比,填写的百分比要小于等于100%,否则无意义。
Per User:不勾选表示,两个线程总共执行的次数等于填写的次数。勾选表示,两个线程组每个执行的次数等于填写的次数。
二、模块控制器
三、开关控制器
功能:Switch控制器的作用类似与Interleave控制器,因为它在每次迭代时运行其中一个指定元素,元素索引参考 Switch Value。原理与java中 Switch case 相同。
通常将Switch Value 值设置为变量,通过传不同的值去执行其下不同的采样器。
Swith Value:1代表第一个控制器,2代表第二个控制器,以此类推。
四、交替控制器
Ignore sub-controller blocks:忽略自控制模块
1、前提:1个线程,5次迭代,loop count为2
执行结果--不勾选:每次循环时顺序执行交替控制下的请求,遇到子控制器时,将子控制器执行一次,所以顺序为A、B、C、(D、D)、A
执行结果--勾选:子控制器循环控制器的次数被忽略了,只执行了循环控制下的请求,所以顺序为A、B、C、D、A
2、前提:5个线程,1次迭代。
执行结果--不勾选:A,A,A,A,A
Interleave across threads:跨线程交替
前提:5个线程,1次迭代。
执行结果--不勾选:A,A,A,A,A
执行结果--勾选:原先每个线程都是从A开始执行,勾选跨线程交替后,每个线程都执行交替控制中不同请求,顺序为A、B、C、D、D、A。
详见:https://blog.csdn.net/agrapea/article/details/122884197