JMeter逻辑控制器之Interleave Controller

交替控制器(Interleave Controller)其节点下的取样器会交替执行。即该控制器包含的取样器步骤交错执行在每个循环中,每个线程用户仅执行一次控制器内的请求,线程用户依据循环的次数请求控制器中的请求数。
在这里插入图片描述

参数介绍

属性描述必填
Name控制器名称,可以根据实际情况进行设置
Comments注释,描述在业务中的作用
Ignore sub-controller blocks忽略子控制器,即设置后子控制器不起作用,从而由交替控制器接管控制,并且每个子控制器一次只允许一个请求
Interleave across threads交替控制器下的请求将应用至所有线程和循环中迭代。如有四个请求,三个线程,两次循环,那么第一个线程请求是请求一和请求二,第二个线程请求是请求二和请求三,第三个线程请求是请求三和请求四

简单使用

我们设置一个线程组,循环次数为5次,如下图所示:
在这里插入图片描述
交替控制器下有3个请求,所以交替完成后重新开始,JMeter最终执行顺序是:Request1,logRequest,Request2,logRequest,Request3,logRequest,Request1,logRequest,Request2,logRequest,如下图所示:
在这里插入图片描述
如果有四个请求,两个线程,循环5次,那么线程一执行顺序是:请求一,请求二,请求三,请求四,请求一;线程二的执行顺序是:请求一,请求二,请求三,请求四,请求一,如下图所示:
在这里插入图片描述

勾选忽略子控制器

如果交替控制器节点下有子控制器,勾选Ignore sub-controller blocks后,那么子控制器失去作用,完全由交替控制器来控制。如果子控制器下有多个请求,那么每次循环只允许请求一个请求。
以下两个例子的交替控制器设置如下:
在这里插入图片描述

例子一(子控制器下一个请求):交替控制器下有4个请求,并且节点下有一个Loop 控制器,循环控制器下有一个请求5,把线程组线程设置为1,循环6次,loop控制器下循环设置3次。
那么执行顺序是:请求一,请求二,请求三,请求四,请求5,请求一,而loop控制器下的循环数没有起作用,说明此时的循环控制器已经失效,如下图所示:
在这里插入图片描述
如果把上面的示例,线程设置为2,运行结果如下所示:
在这里插入图片描述

例子二(子控制器下有三个请求):交替控制器下有4个请求,并且节点下有一个Loop 控制器,循环控制器下有三个,分别为请求5,请求6,请求7,把线程组线程设置为1,循环12次,loop控制器下循环设置3次。
那么执行顺序是:请求一,请求二,请求三,请求四,请求5,请求一,请求二,请求三,请求四,请求5,请求一,请求二。而请求6和请求7一直没有进行发送请求,如下图所示:
在这里插入图片描述

不勾选忽略子控制器

如果不勾选忽略子控制器,那么交替控制器下的子控制器就会按照该控制器的实际情况来运行,即交替执行到循环控制器时,循环执行结束后,在进行下一次的交替。交替控制器设置如下图所示:
在这里插入图片描述
**示例(嵌套一个循环控制器):**交替控制器的节点有4个请求和一个循环控制器,循环控制器下有一个请求5,把线程组设置一个线程,6次循环,而循环控制器设置3次循环。
JMeter执行顺序为:请求一,请求二,请求三,请求四,请求5,请求5,请求5,请求一,如下图所示:
在这里插入图片描述

勾选interleave across threads

勾选interleave across threads,那么会通过线程交替执行每一个子控制器。
交替控制器设置如下所示:
在这里插入图片描述

示例:线程组下设置2个线程,并且循环6次,交替控制器下4个请求,循环控制器一个请求。
线程一执行顺序为:请求一,请求二,请求三,请求四,请求5,请求一
线程二执行顺序为:请求二,请求三,请求四,请求5,请求一,请求二
线程三执行顺序为:请求三,请求四,请求5,请求一,请求二,请求三

在这里插入图片描述

交替控制器的嵌套

我们将线程组配置为具有单个线程,并且循环计数为8。注意,测试计划有一个外部Interleave Controller,其子节点有两个Interleave Controller,如下图所示:
在这里插入图片描述
外部交替控制器控制两个内部交错控制器之间交替。然后,每个内部交错控制器控制每个HTTP请求之间交替。JMeter线程将按以下顺序发送请求:Home Page, Interleaved, Bug Page, Interleaved, CVS Page, Interleaved, and FAQ Page, Interleaved。
如果主交错控制器下的两个交错控制器是简单控制器(循环设置六次),则顺序为:Home Page, CVS Page, Interleaved, Bug Page, FAQ Page, Interleaved.Home Page, CVS Page, Interleaved, Bug Page, FAQ Page, Interleaved.Home Page, CVS Page, Interleaved, Bug Page, FAQ Page, Interleaved.
在这里插入图片描述
但是,如果在主交错控制器上选中了“忽略子控制器块”,则顺序为:Home Page, Interleaved, Bug Page, Interleaved, CVS Page, Interleaved, and FAQ Page, Interleaved,Home Page, Interleaved, Bug Page, Interleaved。如下图所示:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值