Jmeter逻辑控制器(转自Jmeter之逻辑控制器(Logic Controller)-贺满)

作用:控制sampler的执行顺序,需和sampler一起使用


分类:

 1. 控制测试计划执行过程中节点的逻辑执行顺序,如:Loop Controller、If Controller等;

 2. 对测试计划中的脚本进行分组、方便Jmeter统计执行结果以及进行脚本的运行时控制等,如:Throughtput Controller、Transaction Controller


详解:

1. 简单控制器

方便用户组织sampler和其他logic controller,提供一个块的结构和控制,提供分组存放功能,不具备任何逻辑控制或运行时的功能

2. 循环控制器

指定子节点运行的次数

        “永远”选项被勾选,将忽略设置的循环数值,永远循环运行

若同时设置了线程组的循环次数和循环控制器,子节点运行的次数为两个数组相乘的结果。

 

3.  仅一次控制器

在测试执行期间,该控制器下的子节点对每个线程仅运行一次。

登录场景会经常使用这个控制器

将仅一次控制器作为循环控制器的子节点时,仅一次控制器在每次循环的第一次迭代时会被执行(放在设置循环的线程中时,仅一次控制器的子节点也仅执行一次)

4. 交替控制器(interleave)

迭代中循环执行交替控制器中的一个子节点(控制器除外)。

如交替控制器中存在子节点A和B,线程迭代5次,第一次迭代执行A,第二次迭代执行B...以此类推

忽略资控制器块:被选中时,交替控制器会将子控制器作为独立的请求元素,一次仅允许执行一个请求

5. 随机控制器

与交替控制器类似,只是每次迭代时是随机执行其下某个子节点(交替控制器为按顺序依次执行)

6. 随机顺序控制器

其下子节点随机执行,所有子节点必须执行但仅执行一次

7. 吞吐量控制器

允许用户通过以下两种方法控制执行频率

1)Percent executions

设置其子节点相对于测试计划的执行比例

如线程循环次数设置为5,添加Percent executions为40%的吞吐量控制器,其下子节点则循环2次

2)Total executions

设置运行次数

per user:此项被勾选后,在每个线程的基础上,每个用户都将导致控制器计算。未被勾选时,计算针对于所有用户。如:使用total execution模式,不勾选per user选 项,执行次数=throuht值;勾选了per user,执行次数=user数量(对应线程数)*throught值

8. 执行时间控制器

控制子节点的执行时间

9. if控制器

控制子节点的执行条件(满足条件则执行,不满足条件不执行)。默认使用JavaScript语法

Interpret Condition as Variable Expression:选中此项后,判断变量值是否为true

Evaluate for all children:选中此项后,每个子节点执行前都要计算表达式(默认条件下,表达式计算仅在初始进入的时候计算,即仅能控制其下第一个节点)

10. while控制器

控制子节点运行直到条件为“false”

可能的条件值如下:

1)空白:最后一个sampler失败后退出循环

2)LAST:最后一个sampler失败后退出循环。若在进入循环之前,最后一个sampler失败了,就不进入循环

3)其他:当条件为false时,退出循环。条件允许使用JavaScript beanshell  properties variable

11. switch控制器

指定执行某个子节点

switch value:

1)数字:执行排序为该数字的节点(从0开始计数)

2)数字超过子节点数或值为空:执行第一个节点

3)节点名字:执行对应名字的节点

4)指定的节点名字不存在:执行name为default的子节点,若无此子节点,不执行任何操作

12. forEach控制器

一般和用户自定义变量一起使用,在其中读取一系列相关变量。其下的sampler或controller都会被执行一次或多次,每次读取不同的变量值


input variable prefix:要引用的变量的前缀(如变量name1,name2,name3......前缀为name)

start index for loop(exclusive):循环开始的索引(缺省时默认从1开始,若没有从1开始的变量,执行时报错)

end index for loop(inclusive):循环结束的索引

output variable name:输出的变量的名称,之后的引用就直接引用此变量名

add "_" before number?: 输入变量名称中是否使用“_”进行间隔(如变量name_1,name_2,name_3)

注:可与后置处理器结合使用

13. 模块控制器

控制仅运行哪些模块

14. 包含控制器

用于使用外部jmx文件

注:包含测试的测试计划中不能有线程组,仅仅只能有simple controller,然后其下可以添加任何采样器,控制器。

如果需要使用cookie manage或者 用户自定义变量,都应该在顶层的测试计划中设置,不应该包含在外部文件中,否则它们不会起作用。

15. 事务控制器

会产生一个额外的sampler,用于统计该控制器下子节点的所有时间

generate parent sample:控制结果的显示结构。若勾选,总时长和子节点时长按层级显示,未勾选,平行显示

include duration of timer and pre-post processors in generated sampler:选中时,会统计定时器时间(默认仅统计采样器时间)

16. 录制控制器

指明代理服务器在何处录制脚本。在测试运行期间,无任何影响;但当使用 HTTP(S) Test Script Recorder录制时,所有录制的样品默认情况下将存放在录制控制器中

17. critical section控制器

控制子节点仅能被一个线程执行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值