• JMeter笔记17 | JMeter逻辑控制器简介


    • 逻辑控制器可以对元件的执行逻辑进行控制;
    • 逻辑控制器下可以嵌套别的逻辑控制器(一次控制器除外);
    • 如图:
      在这里插入图片描述

    1 ForEach Controller

    • 遍历循环控制器;
    • 参数如下:
      在这里插入图片描述
    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空
    Input variable prefix输入变量前缀:输入需要遍历的用户参数
    Start index for loop(exclusive)开始的值,不填默认为1
    End index for loop(inclusive)结束的值,
    Output variable name输出变量名称,将遍历查询到的符合条件的用户参数赋值给输入变量(Vname),然后就可以在控制器下的取样器使用,格式为${输出变量名}
    Add”_”before number输入变量名称中是否使用“_”进行间隔
    • 一般配合正则表达式提取器来一起使用,可对页面上的某些元素进行重复处理。

    2 Simple Controller

    • 简单控制器;
    • 提供一个块的结构和控制,不具有任何的逻辑控制和运行时的功能,比如可做分组功能;
    • 参数如下:
      在这里插入图片描述
    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空

    3 Loop Controller

    • 循环控制器;
    • 指定其子节点运行的次数;
    • 参数:
      在这里插入图片描述
    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空
    Loop Conunt要么选Infinite(永远),要么设置具体数字

    4 Include Controller

    • 包含控制器;
    • 用来导入外部的测试片段(非完整的测试计划);
    • 被导入的测试计划不能有线程组,只能包含简单控制器及控制器下的元件;
    • 参数如下:
      在这里插入图片描述
    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空
    Filemame文件名,必选,未选会报错

    5 Runtime Controller

    • 生命周期/运行周期控制器;
    • 用来控制其子元件的执行时长;
    • 参数如下:
      在这里插入图片描述
    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空
    Runtime执行时长,默认为1,不填默认为0,此时不执行子元件

    6 Switch Controller

    • Switch条件控制器;
    • 类似于编程语言中的Switch控制语句;
    • 参数如下:
      在这里插入图片描述
    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空
    Switch Value匹配值,可为数字(即取样器编号从0开始);可为字符,为字符时匹配取样器名称

    7 While Controller

    • While条件控制器;
    • 其下的元件一直执行,直到while的条件为False;
    • 参数如下:
      在这里插入图片描述
    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空
    Condition(function or variable)可输入变量或变量表达式。为空:直到某次请求失败退出循环;LAST:直到最后一个请求请求失败退出循环; 其他:当判断条件为false时停止循环

    8 Interleave Controller

    • 交替控制器;
    • 其节点下的取样器交替执行;
    • 比如该控制器下有2个取样器1和2,交替执行1和2请求,即每次传递一个子请求到这个测试,按子元件的排列顺序;
    • 参数如下:
      在这里插入图片描述
    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空
    Ignore sub-controller blocks忽略子控制器模块,子控制器失败由交替控制器接管
    Interleave across threads允许跨线程交替执行

    9 Once Only controller

    • 仅一次控制器;
    • 在测试计划执行期间,该控制器下的子结点对每个线程只执行一次;
    • 登录场景经常会使用到这个控制器;
    • 参数如下:
      在这里插入图片描述
    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空

    10 Throughput Controller

    • 吞吐量控制器;
    • 用来控制其下元件的执行次数;
    • 并无吞吐量的功能,想要控制吞吐量需要使用 Constant Throughput Timer;
    • 参数如下:
      在这里插入图片描述
    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空
    Based on:Percent Ececutions按执行次数的百分比来执行次数,此时Throughput 取值0-100,是否勾选Per Uner对 Percent Ececutions模式无影响。
    Based on:Total Ececutions按Throughput 的值来指定执行次数, 此时Per Uner 和Total Ececutions一起影响执行次数。
    Throughput指定执行次数
    Per Uner每个用户

    11 If Controller

    • If条件控制器;
    • 可通过某个条件控制此节点下的元件是否运行;
    • 参数如下:
      在这里插入图片描述
    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空
    Condition判断条件
    Condition(default javascript)使用JavaScript的函数或变量进行评估判断条件为真或假
    interpret condition as variable expression如果勾选该项,那么变量表达式会进行求值,并与“ture”或“false”进行比较,而无需使用JavaScript
    evaluate for all children如果勾选该项,则该controller在没一个子节点执行时执行一次

    12 Module Controller

    • 模块控制器;
    • 测试控制器子节点下的某一个模块,而不是整个测试计划;
    • 用于跳转到选定的控制器位置并执行对应的控制器;
    • 应用场景为业务逻辑的跳转;
    • 参数如下:

    在这里插入图片描述

    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空
    Module to Run 选择需要跳转到的目标控制器

    13 Random Controller

    • 随机控制器;
    • 节点下的元件随机运行,与交替控制器不一样的是节点下的元件执行顺序不定;
    • 参数说明:
      加粗样式
    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空
    MIgnore sub-controller blocks 忽略子控制器,控制器失败由随机控制器接管

    14 Random Order Controller

    • 随机顺序控制器;
    • 随机执行其下的所有子结点;
    • 与Random Controller不同的是,这个控制器会先将需要随机的内容均执行一遍,但次序不定;
    • 参数如下:
      在这里插入图片描述
    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空

    15 Recording Controller

    • 录制控制器;
    • 类似代理服务器的作用,在测试执行期间记录测试样本;
      在这里插入图片描述
    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空
    Clear all the recorded samples注清除之前执行时记录的所有脚本

    16 Transaction Controller

    • 事务控制器;
    • 把其节点下的取样器执行消耗时间累加在一起;
    • 如果事务控制器下的取样器有多个,只有每一个取样器都运行成功,整个事务控制器定义的事务才算成功;
    • 参数说明:
      在这里插入图片描述
    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空
    Generate parent sample注选择是否生成一个父取样结果
    Include duration of timer and pre-post processors in generated sample是否包含定时器,选中的话在取样器前和后加上延时

    17 Critical Section Controller

    • 临界区控制器;
    • 确保其子节点下的取样器或控制器将被执行(只有一个线程作为一个锁);
    • 参数说明:
      在这里插入图片描述
    参数说明
    Name名称:随意设置,可为空
    Comments注释:随意设置,可为空
    Lock name锁的名称,最好作为唯一值
  • 相关阅读:
    无胁科技-TVD每日漏洞情报-2022-11-23
    二手闲置物品交易数据快照
    【C++】传递‘类非静态成员函数’用作回调函数
    windows下通过mingw编译ffmpeg同时集成x264和x265完全指南
    简单解决网页的验证码
    【Android Studio Gradle】发布aar到私有Artifactory仓库
    数据库高级 V
    elementui限制input输入框中小数点保留一位小数
    牛客多校2 - Link with Game Glitch(spfa求正环,套汇,二分答案)
    以高字节地址为字地址是什么
  • 原文地址:https://blog.csdn.net/NoamaNelson/article/details/127411886