zoukankan      html  css  js  c++  java
  • JMETER(三) 逻辑控制器

    Jmeter中的逻辑控制器分为两类:一类是来控制测试计划执行过程中节点的逻辑执行顺序。如:Loop Controller、If Controller等,一类则与节点的逻辑执行顺序无关,用于对测试计划中的脚本进行分组,方便Jmeter统计执行结果以及进行脚本的的运行时控制,如:ThroughputController、TransactionsController.

    1、Loop Controller


    循环控制器可以控制在其节点下的元件的执行次数。

    如果在线程组中也设置了执行次数,那么循环控制器下的元件的执行次数是:线程组执行次数*循环控制器的执行次数。比如线程组设置执行3次,循环控制器设置执行次数6,总执行次数为18

    参数说明:
    Loop Count:设置成Forever 或填写具体执行次数

    场景:
    一个用户登录系统成功后,一上午都在忙物流计划(plan)。模拟次业务过程登录一次后,然后就一直做物流计划,对plan可以设置Loop controller实现反复操作

    2、Once Only Controller

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

    场景:在模拟请求时有时只需登录一次,就可以把登录的部分放在一次性控制器下

    3、ForEach Controller

    循环控制器和用户自定义变量有关,设置的参数个数就是循环执行的次数

    参数说明:
    Input variable prefix:输入变量前缀,可以在“用户自定义变量”中定义一组变量,循环控制器可从中获取到变量对应的值,然后作为循环控制器的循环条件,还可输出变量作为取样器的参数。

    Start index for loop:循环变量下标的起点
    End index for loop:循环变量下标的终点
    Output variable name:输入变量名称,循环控制器生成的变量名称。
    Add “”before number?:变量前缀后是否加“”作为分隔符

    应用:
    1、添加一个User Defined Variables
    2、ForEach Controller 设置对应参数


    ForEach Controller 循环name_1/2/3,输出变量名称是username,其中名称、输入变量名称、输出变量名称是必须的

    场景:
    在订单查询页面查询订单号,然后对每一条订单出库,此时需要遍历每一条订单,可以把订单号作为循环条件操作。

    4、Transaction Controller

    事务响应时间使我们衡量业务性能的主要指标,事务控制器可以把其节点下的取样器执行消耗的时间累加在一起,便于我们统计。同时我们对每一个取样器的执行时间进行统计。

    如果事务控制器下的取样器有多个,那么只有每一个取样器都运行成功了,整个事务控制器定义的事务才算成功,这是充分必要的条件。

    参数说明:
    Generate Parent sample:是否生成一个父取样结果
    Include duration of timer and pre-post processors in generated sample:是否包含定时器,选中将在取样器前与后加上延时。

    5、If Controller

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

    参数说明:
    Condition:判断条件
    Interpret Condition as Variable Expression?:Condition使用变量表达式来设置条件,结果返回TRUE时执行节点下的元件
    Evaluate for all children:判断条件是否针对所有的子节点,默认不勾选,只在if controller入口执行一次

    6、Runtime Controller

    用来控制其子元件的执行时长

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

    7、Switch Controller


    Switch 条件控制器,指定运行的取样器编号为0(Jmeter会给节点下的取样器顺序编号,第一个取样器“http”编号为0,第二个编号1,所以指定0就会运行第一个请求)。如果指定的编号超出了下面的节点数或者不指定,则运行第0个取样器。另外也可以指定取样器名称,名称匹配时大小写及空格都敏感,如果匹配不上则不运行取样器。

    参数说明:
    Switch Value:匹配值,可以为数字也可以为字符。为字符时匹配取样器名称,匹配不上就会默认并找取样器为default的取样器,如果没有则不运行。

    8、While Controller


    条件控制器,其节点下的元件将一直运行到while条件为false。
    参数说明:
    Condition:接受变量表达式与变量
    Blank:当循环中有取样器失败后停止
    LAST:当循环前有取样器失败则不进入循环
    Otherwise:当判断条件为false时停止循环

    其他控制器:
    Interleave Controller
    Throughput Controller
    Random Controller
    Random Order Controller
    Recording Controller

  • 相关阅读:
    可变参数
    数组初始化方式和多维数组
    向下转型的意义
    向上转型和向下转型
    equals
    命名规范
    安装elasticsearch的坑
    IntelliJ IDEA中创建xml文件
    IDEA优化内存配置,可提高启动和运行速度
    log报错的原因解决
  • 原文地址:https://www.cnblogs.com/liho/p/15636045.html
Copyright © 2011-2022 走看看