jmeter初级-逻辑控制器(二)

本次主要介绍17种逻辑控制器中的交替控制器、随机控制器、随机顺序控制器、吞吐量控制器、如果控制器

交替控制器:

交替控制器,当在交替控制器页面勾选了忽略子控制块,在该控制器下添加多个请求时,每次循环都会交替执行该控制器下的所有请求。

使用方法:如果交替控制器下有两个A、B请求,循环次数为5,则从第一个开始执行,按照请求的顺序,进行交替执行,即执行顺序是:A、B、A、B、A

jmeter初级-逻辑控制器(二)

jmeter初级-逻辑控制器(二)

jmeter初级-逻辑控制器(二)

jmeter初级-逻辑控制器(二)

jmeter初级-逻辑控制器(二)

复杂的交替控制器:

如果一个外层交替控制器,内嵌套两个交替控制器,则外层交替控制器轮流执行内层的两个控制器,而内层交替控制器轮流执行其下面的每个请求。如图所示:

简单控制器下有两个交替控制器:

jmeter初级-逻辑控制器(二)

在交替控制器A下有两个内层交替控制器:

jmeter初级-逻辑控制器(二)

在内层控制器A、B下,都各有两个交替控制器:

jmeter初级-逻辑控制器(二)

设置线程数循环次数为8,运行结果如下:

jmeter初级-逻辑控制器(二)

jmeter初级-逻辑控制器(二)

随机控制器:

随机控制器,类似于交替控制器,不同之处在于,交替控制器按照请求的顺序进行循环执行。随机控制器的请求不会按照顺序轮流执行,而是每次循环随机挑选一个执行,并且在随机循环过程中,可能存在请求没有被执行过一次的情况。

如图所示:在简单控制器下添加一个随机控制器,在随机控制器下添加3个请求

jmeter初级-逻辑控制器(二)

在线程组页面中设置循环次数为5次:

jmeter初级-逻辑控制器(二)


运行结果如下(存在login2请求没有被执行):

jmeter初级-逻辑控制器(二)

(应用场景:随机控制器用于随机访问页面。通过结果,可以看出,随机控制器是随机执行其控制器下的其中一个请求)。

随机顺序控制器:

随机顺序控制器,在随机控制器上进行了优化,随机顺序控制器与随机控制器的不同之处,在于随机顺序控制器下的每个请求,在循环过程中都会执行一次,但是执行顺序是随机的,如图所示:

在简单控制器下添加一个随机顺序控制器,在随机顺序控制器下添加三个请求:

jmeter初级-逻辑控制器(二)

在线程组页面设置循环次数为5次:

jmeter初级-逻辑控制器(二)

运行结果,如下:

jmeter初级-逻辑控制器(二)

通过结果,可以看出,每一次循环都要将所有的请求执行一次,但是执行的顺序随机。

吞吐量控制器:

吞吐量控制器,其实并不是控制吞吐量。其作用是控制用户执行的频率和次数。如图所示:

jmeter初级-逻辑控制器(二)

在吞吐量控制器页面,有两种模式:percent executions和total executions,第一种主要是以比例进行执行次数。第二种主要以数值进行执行次数。如在线程组中设定了循环次数为5,在吞吐量1中勾选percent executions,值为60.0,则60.0% * 5 = 3。吞吐量2中勾选percent executions,值为60.0,则60.0% * 5 = 3,吞吐量1执行了3次,吞吐量2执行了3次。每一个吞吐量,都以线程组中设定的值为基准。

jmeter初级-逻辑控制器(二)

jmeter初级-逻辑控制器(二)

jmeter初级-逻辑控制器(二)

jmeter初级-逻辑控制器(二)

如果控制器:

通过如果控制器,可以控制其下面的请求是否执行。当如果控制器中的条件符合时,则会执行如果控制器下面的所有请求。如图所示:

jmeter初级-逻辑控制器(二)

在如果控制器中的条件输入框中输入判断条件,在条件输入框下面有两个参数,一个是Interpret Condition asVariable Expression?,另一个是Evaluate for all children。如果勾选第一个,则判断条件必须是表达式,其求值为true。如果勾选第二个,则判断条件是否针对所有子测试元件,如果不勾选,则仅在初始入口处评估一次。

以下通过实践,在线程组中新建一个登录请求、如果控制器。在如果控制器中添加3个请求,通过设置计数器,当计数器大于6时,执行如果控制器下面的所有请求

(1)新建一个登录请求、如果控制器,并且在如果控制器下面新建3个请求:

jmeter初级-逻辑控制器(二)

(2)登录请求的序号根据计数器自动增加

jmeter初级-逻辑控制器(二)

(3)添加计数器,从1开始,递增数值为1,最大数为10:

jmeter初级-逻辑控制器(二)

(4)在如果控制器页面设置条件:

jmeter初级-逻辑控制器(二)

(5)运行结果如下,当登录请求_7大于6时,开始执行如果控制器下面的所有请求:

jmeter初级-逻辑控制器(二)

以上就是交替控制器、随机控制器、随机顺序控制器、如果控制器的实践操作