jmeter在进行测试过程中,不可能所有的元件都只用线程组这个类似控制器来简单的控制。可以利用一些特定的控制器来进行控制。这里介绍几个比较常用的循环控制器。
工具/原料
jmeter-v3.2
SimpleController-简单控制器
1、你可以将其简单的理解为单元的意思或藤舔趾贶者分组的意思,它不提供什么意义,不改变元件的执行顺序。(可以在里面继续添加控制器)你可以并它来规范你的元件,规范脚本。使用它养成良好的习惯撅掏浑锌。右键【添加】-【逻辑控制器】-【简单控制器】
IncludeController-包含控制器
1、右键【添加】-【逻辑控制器】-【IncludeController】可以用它来导入外部的脚本。
2、文件名填入脚本的路径。相当与引入了一个封装的执行单元。注意:这个引入的脚本不能包含线程,只能是元件和控制器。
RuntimeController
1、右键【添加】-【逻辑控制器】-【RuntimeController】用来控制其子元件的执行时长。
2、当选择为0的时候,其下面的元件将不再执行。设置执行时长可以控制某些请求不需要一直发送,在有些综合场景中可以用到。
SwitchController
1、Switch条件控制器右键【添加】-【逻辑控制器】-【SwitchController】
2、switchvalue就是你要指定执行擢爻充种的元件。我的控制器下面有6个元件,依次是:百度首页,百度新闻,百度揍茏壅混文库,百度经验,百度音乐,百度知道。其中元件的编号是从0开始的,所以是0,1,2,3,4,5我现在指定2,执行一下,看看结果。
3、编号为3的正好是百度文库,这就是switch条件控制器的作用。当swicth不指定或者超出元件编号范围的,执行编号为0也就是第一个元件。
LoopController
1、循环控制器。右键【添加】-【逻辑控制器】-【循环控制器】
2、它用来控遄咿湫幼制元件的循环次数。在测试中用到的次数也不少。因为有的元件你可以单独控制其循环次数。例如,这里我指定循环次数是10,但是我的线程组循环次剞麽苍足数是2.(我先把switchcontroller注释掉,箭头指的地方就是注释按钮)
3、执行一下看看效果。共计发送了20个请求,也就是最终执行次数是runtime的次数×线程组的循环次数。
OnlyOnceController
1、仅一次控制器跷孳岔养。这个也是很有用处的。在loadrunner中有init初始化的Action,这个就可以起瘌豚胛瑗到这个作用。(如果你设定的线程组的循环次数>1)右键【添加】-【逻辑控制器】-【仅一次控制器】
2、我在线程组下面加上一个仅一次控制器,将百度文库的请求放在里面。
3、线程组的循环次数调成10,再来执行一次,查看结果。只执行了一次。这个就类似,登录只做一次一样。将初始化的请求放在这里面。
RandomController
1、随机控制器。右键【添加】-【逻辑控制器】-【仅一次控制器】将所有的元件,全部放在这里面来,执行查看结果。
2、我的线程组循环次数是10,执行的结果,可以看到每次都是随机执行了一个元件。
3、RandomOrderController随机顺序控制器。它与随机控制器的区别就是:虽然是随机的,但是每个元件都会执行一次。上面的执行结果,百度新闻是没有访问的。用到的场景目前小编这用的不多。