• jmeter控制器--if控制器


    一、背景

    在实际工作中,当使用Jmeter做性能脚本或者接口脚本时,有可能会遇到需要对不同的条件做不同的操作,基于这种诉求,在Jmeter中可使用if控制器来实现

     作用:根据给定表达式的值决定是否执行该节点下的子节点,默认使用javascript的语法进行判断(如下图红框内的文字)。

    二、实际操作

    逻辑控制器位置:

      在线程组下,执行:添加  ---->> 逻辑控制器 ---->> 如果(If)控制器

    例如:要实现登录成功后进行其他操作,登录是否成功用正则表达式获取token来判断

    那么看下if控制器,

    参数:

    • Interpret Condition as Variable Expression?:选中这一项时表示:判断变量值是否等于字符串true(不区分大小写)
    • Evaluate for all children:如果选中这一项,在每个子结点执行前都会计算表达式 

    示例一:使用表达式的方式进行判断:

    if控制器判断的写法是 “”“变量”=="值" 这样的写法,if控制器下有个选项是Interpret Condition as Variable Expression?翻译过来意思是将条件解释为变量表达式?

    if逻辑控制器控件中最重要就是Expression(must evaluate true or false)输入框,此处需要写入需要进行判断的表达式,从must evaluate true or false可知,实际使用时,只能填入true或者false这样的值,因此我们需要借助其他模块或者函数将需要进行判断的表达式(如 ${var}== 5)转换成true或false,判断才能生效,直接将${var}== 5这样的表达式写入Expression中是无效的。

    从该控制器提示的信息中,可以借助__jexl3或者__groovy函数来计算表达式的值,这样着重介绍下__jexl3在 if控制器中的使用。

    jexl全称:Jakarta Commons Jexl,是一种表达式语言(Java Expression Language)解释器。

    JEXL Expression to evaluate:此处直接填写需要进行判断的表达式即可

    表达式支持:

    ==   是否等于,如${__jexl3(${VAR}==1,)},判断${VAR}变量是否等于1

    !=  不等于,如${__jexl3(${VAR}!=1,)},判断${VAR}变量是否不等于1

    !  非,如${__jexl3(!(${VAR}!=1),)}对${VAR}!=1的结果取反

    &&或||  且与或,如  ${__jexl3(${VAR}==1 && ${name} != "heima",)}

    > 或者>==   大于等于,如${__jexl3(${count}>=10,)}

    那么此处判断的条件是token不等于0,填入if控制器中,执行

    执行结果通过。

    ps: 也可以使用用户自定义变量的方式,直接设置变量的值为true,也 可以进入if控制器

     示例二:使用JavaScript进行条件解释

    不勾选Interpret Condition as Variable Expression?选项,设置条件为token不等于0 ,进行执行

     

    最后执行成功。

  • 相关阅读:
    设计模式7—装饰者模式【结构型】
    设计模式6—命令模式【行为型】
    vue工程类型—vue 多模块、vue多项目集成工程
    设计模式5—迭代器模式【行为型】
    设计模式4—代理模式【结构型】
    设计模式3—策略模式【行为型】
    用户权限管理系统(后台权限管理)
    https原理 及 证书
    设计模式2—单例模式【创建型】
    设计模式1—发布订阅者模式【行为型】
  • 原文地址:https://www.cnblogs.com/gezirui/p/9618411.html
Copyright © 2020-2023  润新知