逻辑控制器
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的线程同步锁作用得到验证。
原文地址:https://www.cnblogs.com/mumulog/p/11320204.html