Jmeter学习:控制器--吞吐量控制器/模块控制器/开关控制器/交替控制器

一、吞吐量控制器

功能:吞吐量控制器允许用户控制后代元素的执行的次数。有两种模式:执行百分比和指定总数。
吞吐量控制器不会影响采样器的 TPS,但会控制其内部逻辑的执行次数。
线程组配置:

 控制器配置:

 

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

 

posted @ 2023-01-21 00:48  Chaman囍  阅读(873)  评论(0编辑  收藏  举报