jmeter逻辑控制器详解

Posted mumulog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jmeter逻辑控制器详解相关的知识,希望对你有一定的参考价值。

逻辑控制器

8、Runtime Controller

运行周期控制器,顾名思义,这是一种设置运行时间的控制器,它的效果就是使该控制器下的子项运行时间为【Runtime】中的数值(单位:s)。

Runtime Controller】的运行时间为【Runtime】的值乘以线程组循环次数。

这里循环次数设置为2,时间为2秒:

技术图片

 

 

技术图片

 

9、bzm - Weighted Switch Controller

权重开关控制器(直译),它能分配其子项目(Child Item)的权重,从而控制子项的执行概率。首先建立如下的脚本结构:

在bzm - Weighted Switch Controller下有两个HTTP请求,将它们的Weight设置为6和4,线程数设为2,线程组循环次数设为10,当脚本运行结束后,观察聚合报告

技术图片

技术图片

 

 

 

10、Random Order Controller

随机顺序控制器,与简单控制器类似,会执行它下面的每个子项,只不过执行顺序是随机的。

技术图片

 

 

11、Random Controller

随机控制器,当该控制器下有多个子项时,每次循环会随机执行其中一个。建立下图的脚本结构
运行脚本,结果如下:

技术图片

 

随机控制器有一个参数项:Ignore sub-controller block(忽略子控制器模块)。如果勾选了此项,随机控制器下的子控制器中的多个子项只会被执行一个,

勾选【Ignore sub-controller block】后再次运行脚本,结果变为:

技术图片

 

12、Interleave Example

交替控制器,使得该控制器包含的取样器步骤在每次循环中交替执行。例如下面的脚本结构,将线程组循环次数设为6并运行。

结果如下:

技术图片

 

勾选【Ignore sub-contorller blocks】后再次运行:

技术图片

区别很明显,勾选了【Ignore sub-contorller blocks】后,交替控制器子控制器中的取样器一次运行只会被执行一个。

 

13、Module Controller

模块控制器,可以理解为对封装好的模块的调用。

技术图片

 

14.Critical Section Controller

临界区控制器,这个名字听起来很难理解,其实这个控制器的作用是为它的子项加一个同步锁,使得在多线程场景下,同一时刻,只有一个线程能够调用其子项。

技术图片技术图片

 

然后设置线程组线程数为1,循环次数为10,设置固定定时器线程延迟为1000ms

技术图片

技术图片

运行后,观察结果树和聚合报告,可以观察到,HTTP请求是1s中被执行一次,因此Critical Section Controller的线程同步锁作用得到验证。

 

以上是关于jmeter逻辑控制器详解的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter - 从入门到精通 - JMeter逻辑控制器 - 中篇(详解教程)

JMETER_16个逻辑控制器详解

Jmeter - 从入门到精通 - JMeter逻辑控制器 - 上篇(详解教程)

Jmeter - 从入门到精通 - JMeter逻辑控制器 - 中篇(详解教程)

JMeter元件详解之ForEach Controller 逻辑控制器

jmeter逻辑控制器详解