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",)}
例如,没勾选上述配置之前,使用条件:${__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变量。

没勾选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}(检查最后一个采样器采样是否成功)
JMeter 逻辑控制之IF条件控制器的更多相关文章
- JMeter 逻辑控制之While循环控制器(While Controller)
逻辑控制之While循环控制器(While Controller) by:授客 QQ:1033553122 测试环境 apache-jmeter-2.13 1. 添加While Control ...
- Jmeter --- 逻辑控制之if控制器
一.背景 在实际工作中,当使用Jmeter做性能脚本或者接口脚本时,有可能会遇到需要对不同的条件做不同的操作,基于这种诉求,在Jmeter中可使用if控制器来实现 二.实际操作 逻辑控制器位置: 在线 ...
- Jmeter逻辑控制之if控制器
一.背景 在实际工作中,当使用Jmeter做性能脚本或者接口脚本时,有可能会遇到需要对不同的条件做不同的操作,基于这种诉求,在Jmeter中可使用if控制器来实现 二.实际操作 逻辑控制器位置: 在线 ...
- 性能测试之jmeter逻辑控制种类详解一
逻辑控制器介绍 Jmeter逻辑控制可以对元件的执行逻辑进行控制,除Once only Controller仅一次控制器以外,其他控制器都可以可以嵌套其他种类的控制器,下面是jmeter5.3支持的控 ...
- Jmeter(四十二)_控制器下遍历一组参数
概述 在接口自动化的过程中,经常遇到需要遍历的参数组.jmeter在中,foreach控制器可以实现遍历参数,但是只能有一个入参.一旦遇到数组,foreach控制器表示我也无能为力... 为了解决这个 ...
- JMETER 使用BeanShell 配合 if 控制器实现逻辑控制
业务场景 在登录后,我们根据登录的响应,判断是否执行下一步的操作. 实现步骤 1.在登录采样器树中增加BeanShell 监听器. 作用是在线程上下文变量中增加一个变量,表示登录是否成功. beans ...
- Jmeter 逻辑控制器之吞吐量控制器(Throughput Controller)
吞吐量控制器(Throughput Controller)用来控制其下元件的执行次数,并无控制吞吐量的功能,想要控制吞吐量可以用Constant Throughput Timer,吞吐量控制器有两种模 ...
- Jmeter逻辑控制器之If Controller的使用解析
一.If Controller概述 类似于编程语言中if语句,根据给定表达式的值决定是否执行该节点下的子节点,表达式的值 为true则执行,为false则不执行,默认使用javascript语法进行判 ...
- jmeter断言:断言条件之间是“或”的关系
有时,我们在做断言时,需要同时满足一系列条件,这在jmeter自带响应断言中已经实现: 有时,同一请求在不同时间,返回的响应是不同的,而这都是正确的响应,也就是说,我们判断的条件之间是或的关系,此时, ...
- Jmeter(三十八)while控制器实现ssh三次重连
在jmeter中,可以使用SSH协议连接主机进行相关操作, 步骤如下 首先添加一个ssh command 我们的测试交流群:317765580 在command中填写远程连接的必要信息 结果树中可以 ...
随机推荐
- VisioForge.DotNet.Core.UI.WPF WPF摄像头 UVC 显示 支持 .net core
Sample applications available at https://github.com/visioforge/.Net-SDK-s-samples . Please add Visio ...
- 深入探讨Function Calling:实现外部函数调用的工作原理
引言 Function Calling 是一个允许大型语言模型(如 GPT)在生成文本的过程中调用外部函数或服务的功能. Function Calling允许我们以 JSON 格式向 LLM 模型描述 ...
- XML Web 服务技术解析:WSDL 与 SOAP 原理、应用案例一览
XML Web服务是一种用于在网络上发布.发现和使用应用程序组件的技术.它基于一系列标准和协议,如WSDL.SOAP.RDF和RSS.下面是一些相关的内容: WSDL(Web服务描述语言):用于描述W ...
- Windows程序读取不了中文路径问题
问题描述 今天调试发现win32接口GetFileAttributesW居然不支持中文路径,于是寻找解决方案,找了半天,尝试用boost的fileystem库发现能用,而且boost能跨平台! 不支持 ...
- OOP课第二阶段总结
OOP课第二阶段总结 前言 作为第二次3+1的总结,明显感受到了此次题目集越来越复杂,结合了实际的物理知识来解决现实中的电路问题.因为电路可以一直扩展下去,情况千变万化,难以像上次题目集一样找到一个呆 ...
- CF1753
CF1753 成功因为虚拟机炸了,重新写一遍此文. 都是没有保存的错. A. Make Nonzero Sum 由于 Note that it is not required to minimize ...
- 【Java面试题-基础知识03】Java线程连环问
1.Java中的线程是什么? 在Java中,线程是程序执行流的最小单元.每个Java程序都至少有一个主线程,也称为主执行线程,它是程序开始执行时自动创建的.除了主线程外,程序员还可以创建额外的线程来执 ...
- 新浪微博动态 RSA 分析图文+登录
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 新浪微博动态 RSA 分析图文+登录 日期:2016-10 ...
- 修改Oracle数据表空间存储位置
查看数据文件的存储路径: SQL> select name from v$datafile; NAME --------------------------------------------- ...
- 华为交换机配置端口模式时报错:Please renew the default configurations
场景 在华为交换机上使用混杂端口时报这个错,原因是你之前已经将此端口加入了某个vlan 所以你需要undo之前配置的命令 解决方法 sys int G 0/0/1 #替换为报错的端口 undo por ...