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中填写远程连接的必要信息 结果树中可以 ...
随机推荐
- wxPython==4.2.1 aui.AuiToolBar 如何去掉烦人的抓手?
aui.AuiToolBar 如何去掉烦人的抓手? 最近在用wxPython做一些GUI小应用,发现工具栏总有几个点(抓手),很影响美观,如下: 目前官方没有提供隐藏抓手的功能,需要更改源码的auib ...
- Android 13 - Media框架(6)- NuPlayer
关注公众号免费阅读全文,进入音视频开发技术分享群! 上一节我们通过 NuPlayerDriver 了解了 NuPlayer 的使用方式,这一节我们一起来学习 NuPlayer 的部分实现细节. ps: ...
- Prism 基础知识学习(五)发布订阅
Prism 基础知识学习(五)发布订阅 在 ViewBViewModel.cs中 1 public class ViewBViewModel : IDialogAware 2 { 3 /// < ...
- Linux间进程通信--消息队列
本系列文章主要是学习记录Linux下进程间通信的方式. 常用的进程间通信方式:管道.FIFO.消息队列.信号量以及共享存储. 参考文档:<UNIX环境高级编程(第三版)> 参考视频:Lin ...
- node写接受
选择数据库类型:mongodb 定义用户集合的字段(域): 用户名 密码 性别 爱好(多选) 简介 npm i -S express mongoose 在项目中连接mongodb服务 inde ...
- kettle从入门到精通 第十二课 kettle java代码过滤记录、利用Janino计算Java表达式
1.下图通过简单的示例讲解了根据java代码过滤记录和利用Janino计算Java表达式两个组件. 2.根据java代码过滤记录 1)步骤名称:自定义 2)接收匹配的行的步骤(可选):下面条件(jav ...
- EF EntityFramework 强制从数据库中取数据,而不是上下文
场景:插入了一条数据到数据库,这条数据会有其它程序修改,接着程序想获取最新数据.此时不加额外处理,取的仍是旧的. t_task ta = new t_task(); ta.item_id = item ...
- Scrapy框架(四)--五大核心组件
scrapy的基本使用我们已经掌握,但是各位心中一定会有些许的疑问,我们在编写scrapy工程的时候,我们只是在定义相关类中的属性或者方法, 但是我们并没有手动的对类进行实例化或者手动调用过相关的方法 ...
- OpenTelemetry 实践指南:历史、架构与基本概念
背景 之前陆续写过一些和 OpenTelemetry 相关的文章: 实战:如何优雅的从 Skywalking 切换到 OpenTelemetry 实战:如何编写一个 OpenTelemetry Ext ...
- UITableView的使用样例(简易向)
功能实现 构建一个UITableView,并使其默认显示a,b,c--.. 构建一个按钮,点击后列表变为英文字母 构建一个按钮,点击后列表变为数字 基本概念 实现前头文件需要签订协议(如何签订向后看) ...