• JMeter 逻辑控制之IF条件控制器


    逻辑控制之IF条件控制器

    测试环境

    JMeter-5.4.1

    循环控制器介绍

    添加While Controller

    右键线程组->添加->逻辑控制器->While控制器

    在这里插入图片描述

    控制器面板介绍

    添加后,面板如下

    在这里插入图片描述

    仅Expression值为true,才会执行位于其下的操作

    最好勾选(默认配置)Interpret Condition as Variable Expression?,这样Expression输入框可以有两种输入选择:

    • 输入一个值为true 或者false的变量

    比如,如果你想测试,最后一个采样器执行是否成功,可以输入${JMeterThread.last_sample_ok}

    • 输入对bool表达式求值的函数(建议使用${__jexl3()},当然也可以用支持__groovy) ,形如
    ${__jexl3(${COUNT} < 10 && "${VAR}" == "abcd",)}
    
    • 1

    例如,没勾选上述配置之前,使用条件:KaTeX parse error: Expected group after '_' at position 2: {_̲_jexl3({VAR} == 23)},该条件计算结果(true或者false)会被传递给JavaScript,最后由JavaScript反回该结果值。勾选上述配置之后,会将该条件计算结果直接与true比较,不需要使用JavaScript.

    检测变量是否为定义或者为null,可以采用以下表达式,假设变量命名为 myVar:

    ${__jexl3("${myVar}" == "\${myVar}")}
    
    • 1

    或者:

    ${__jexl3("${myVar}" != "\${myVar}")}
    
    • 1

    如果不勾选 Interpret Condition as Variable Expression? 控制器会使用javascript计算表达式,这会带来很大的性能消耗,并且降低测试的扩展性。

    Evaluate for all children

    如果勾选,则执行其下所有子组件时都会重新计算条件值,否则仅在进入控制器时时进行计算

    示例:如下图,If Controller条件为KaTeX parse error: Expected group after '_' at position 2: {_̲_jexl3("{myVar}" == “${myVar}”)},执行HTTP Request1之前没有设置myVar变量。

    在这里插入图片描述

    没勾选Evaluate for all children之前,运行时,HTTP Request2也会被执行,反之,HTTP Request2不会被执行。

    例子(JavaScript)

    • ${COUNT} < 10
    • “${VAR}” == “abcd”

    如果在解释代码时出错,那么条件结果值会被设置为false

    当使用__groovy时,注意不要在字符串中使用变量替换,形如KaTeX parse error: Expected group after '_' at position 2: {_̲_groovy("{myVar}" == 1)},否则使用了改变脚本的变量不能被缓存。取而代之,使用vars.get(“myVar”),参见下文

    例子(Variable Expression)

    • ${__groovy(vars.get(“myVar”) != “Invalid” )} (检查myVar变量是否等于Invalid)
    • ${__groovy(vars.get(“myInt”).toInteger() <=4 )} (检查myInt变量是否小于等于4)
    • ${__groovy(vars.get(“myMissing”) != null )} (检查是否设置了myMissing变量)
    • KaTeX parse error: Expected group after '_' at position 2: {_̲_jexl3({COUNT} < 10)}
    • ${RESULT}
    • ${JMeterThread.last_sample_ok} (检查最后一个采样器采样是否成功)

    现在我邀请你进入我们的软件测试学习交流群:746506216】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。

    喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    一种改进多旋翼无人机动态仿真的模块化仿真环境研究(Matlab代码实现)
    矩阵特征值与特征向量的理解
    深入浅出 多线程编程(2)
    字典树 (Trie)
    element-ui el-table 树形结构 父子级联动
    怎么给字符串字段加索引?
    后端一次性返回10w条数据,该如何渲染
    图像处理黑科技—破解文档识别难题(PS检测、弯曲拉平、切边切片、摩尔纹)
    搭建Redis -Sentinel架构
    绕过WAF(Web应用程序防火墙)--介绍、主要功能、部署模式、分类及注入绕过方式等
  • 原文地址:https://blog.csdn.net/m0_67695717/article/details/126851364