Jmeter-逻辑控制器

简介

Jmeter逻辑控制器可以对元件的逻辑进行控制,除仅一次逻辑控制器以外,其他控制器下都可以嵌套别的种类的逻辑控制器。

逻辑控制器的作用域只对其子节点的取样器有效,作用是控制取样器的执行顺序。

1.ForEach Controller

循环控制器,用来定义一个循环规则。

参数说明:

名称:控制器名称,可以为空

注释:可以为空

输入变量前缀:可以在“用户自定义的变量”中定义一组变量,循环控制器可以从中获取到变量的值,

       然后作为循环控制器的循环条件,还可以输出变量作为取样器的参数。

Start index for loop:循环变量起始下标

End index for loop:循环变量终止下标

输出变量名称:循环控制器生成的变量名称

2.Simple Controller

简单控制器,用来指定一个执行单元,它不改变元件的执行顺序,它下面可以嵌套其他的控制器

可编辑的属性只有名称和注释

3.Include Controller

包含控制器,用来导入外部的测试片段(非完整的测试计划),在执行时会执行导入的测试 计划。

注意:被导入的测试计划不能有线程组,只能包含简单逻辑控制器及控制器下的元件。

简单的说相当于加了一个执行单元,一个封装的业务操作单元,类似于函数。

来个栗子

比如一个查询订单的业务操作我们用取样器来模拟,然后放到简单控制器中作为一个执行单元,

别的地方需要用到这个功能时,我们可以直接引用。

参数

名称和注释就不作说明了

文件名:必输字段

4.Runtime Controller

运行周期控制器,用来控制其子元件的执行时间

参数

Runtime(seconds):默认为1,去掉1则默认为0,此时不执行其节点下的元件

5.Switch Contoller

Switch条件控制器,类似于编程中的switch语句

来个栗子

(待补)

参数

Switch Value:匹配值,可以为数字或字符,为字符时匹配取样器名称,如果匹配不上,

         就会默认并找取样器名称为default的取样器,如果没有则不运行。

6.While Contoller

While条件控制器,其节点下的元件将一直运行到While条件为false。

参数

Condition:接收变量表达式与变量

Blank:当循环中有取样器失败后停止

LAST:当循环中有取样器失败则不进入循环

Otherwise:当条件判断为false时停止循环

7.Interleave Controller

交替控制器,其节点下的取样器会交替执行

栗子(待补充)

参数说明:

Ignore sub-controller blocks:忽略子控制器,即子控制器失效时由交替控制器接管

8.Once Only Conotroller

仅一次控制器,此控制器下的子元件只运行一次,即使把子控制器放在循环控制器下面,也只是执行一次

栗子(待补充)

9.Throughput Controller

用来控制其元件下的执行次数,并无控制吞吐量的功能,想要控制吞吐量可以使用Constant Throughput Timer,

吞吐量控制的两种模式:Total Executions和Percent Executions

参数

名称:控制器名称,可以为空

Percent Executions: 按执行次数的百分比来计算执行次数,此时Throughput取值为0~100.Per User是否勾选对Percent Executions没有影响

Per User:如果选择Per User则按虚拟用户数来计算执行次数,若没给勾选则按所有虚拟用户来计算。

Total Executions:按Throughput的值来指定执行次数,可以为任意整数,若小于等于0则不执行。此时Per User 和Total Executions一起来影响执行次数。

10.If Controller

条件控制器,通过某个条件来控制此节点下的元件是否运行。Condition可以使用javascript于变量表达式

参数

Condition:判断条件,勾选Interpret Condition as Variable Expression?时Condition使用变量表达式来设置条件

栗子(待补充)

Evaluate for all children:判断条件是否针对所有的节点,默认不勾选,只在If Condition的入口判断一次。

猜你喜欢

转载自www.cnblogs.com/marton/p/11296858.html