首页 > 其他分享 >JMeter 逻辑控制之IF条件控制器

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

时间:2022-12-16 11:39:15浏览次数:64  
标签:__ groovy 控制器 变量 逻辑 jexl3 myVar JMeter

逻辑控制之IF条件控制器

测试环境

JMeter-5.4.1

循环控制器介绍

添加While Controller

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

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

控制器面板介绍

添加后,面板如下

JMeter 逻辑控制之IF条件控制器_if逻辑控制器_02

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

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

  • 输入一个值为​​true​​ 或者​​false​​的变量
    比如,如果你想测试,最后一个采样器执行是否成功,可以输入​​${JMeterThread.last_sample_ok}​
  • 输入对bool表达式求值的函数(建议使用​​${__jexl3()}​​,当然也可以用支持​​__groovy​​) ,形如
${__jexl3(${COUNT} < 10 && "${VAR}" == "abcd",)}

例如,没勾选上述配置之前,使用条件:​​${__jexl3(${VAR} == 23)}​​​,该条件计算结果(​​true​​​或者​​false​​​)会被传递给JavaScript,最后由JavaScript反回该结果值。勾选上述配置之后,会将该条件计算结果直接与​​true​​比较,不需要使用JavaScript.

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

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

或者:

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

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

Evaluate for all children

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

示例:如下图,If Controller条件为​​${__jexl3("${myVar}" == "\${myVar}")}​​,执行HTTP Request1之前没有设置myVar变量。

JMeter 逻辑控制之IF条件控制器_if控制器_03

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

例子(JavaScript)

  • ​${COUNT} < 10​
  • ​"${VAR}" == "abcd"​

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

当使用​​__groovy​​​时,注意不要在字符串中使用变量替换,形如​​${__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变量)
  • ​${__jexl3(${COUNT} < 10)}​
  • ​${RESULT}​
  • ​${JMeterThread.last_sample_ok}​​ (检查最后一个采样器采样是否成功)

作者:​​授客​


全国软件测试QQ交流群:​​7156436​


Git地址:​​https://gitee.com/ishouke​


友情提示:限于时间仓促,文中可能存在错误,欢迎指正、评论!

       


标签:__,groovy,控制器,变量,逻辑,jexl3,myVar,JMeter
From: https://blog.51cto.com/shouke/5946997

相关文章

  • jmeter.5.4.1
    采样器JSR223JSR是JavaSpecificationRequests的缩写,意思是Java规范提案.是指向JCP(JavaCommunityProcess)提出新增一个标准化技术规范的正式请求.任何人或组织都可以向......
  • jmeter安装
    jmeter下载地址(注意jdk版本要1.8+)https://jmeter.apache.org/download_jmeter.cgijmeter添加环境变量系统环境变量中添加JMETER_HOME在path中添加D:\soft\jmete......
  • 【机器学习】李宏毅——从逻辑回归推导出神经网络
    假设现在有两种类别的样本,其类别分别为\(C_1\)和\(C_2\),而拥有的样本数分别为\(N_1\)和\(N_2\),那么假设每个样本都是从其类别对应的高斯分布中取出来的,那么则可以进行如下......
  • 关于onMouseOut违背逻辑关系的解决办法!
    现有如下代码:<div id='div1' style='width:200; height:200;' onMouseOut="HideDiv('div1');">   <a href='#'>test</a></div>鼠标移出这个层的时候,就触发onMouseOu......
  • JMeter学习-011-JMeter 后置处理器实例之 - 正则表达式提取器(三)多参数获取进阶引用篇
     前两篇文章分表讲述了后置处理器-正则表达式提取器概述及简单实例、多参数获取,相应博文敬请参阅 ​​简单实例​​、​​多参数获取​​。此文主要讲述如何引用正则表......
  • jmeter更换背景颜色
    1、启动jmeter,找到options-Lookandfeel:2、选择要更换的主题后重启......
  • 《Pytorch - 逻辑回归模型》
    2020年10月4号,依然在家学习。今天是我写的第二个Pytorch程序,从今天起也算是入门了。这里是简单的实现了逻辑回归开始。回顾线性回归,线性模型如下y=wx+b,图画的丑了,意......
  • 每天进步一点点《ML - 逻辑回归》
    一些前提的约定,还是沿用上篇文章的哈。先来致敬下男神。一:LogisticRegressionModel简介它是一种二分类的模型(Binary-Classification),属于监督学习的分类算法,也就是说它的......
  • 物理核与逻辑核-转
    Linux和Windows物理CPU、物理核、逻辑核——区别、关系和查看 cat/proc/cpuinfo命令部分输出信息的含义physicalid物理封装的处理器的idprocessor逻辑核......
  • Jmeter小白使用攻略
    《Jmeter小白使用攻略》 一、主界面 二、如何测试一个接口              ......