Jmeter逻辑控制之if控制器
一、背景
在实际工作中,当使用Jmeter做性能脚本或者接口脚本时,有可能会遇到需要对不同的条件做不同的操作,基于这种诉求,在Jmeter中可使用if控制器来实现
二、实际操作
逻辑控制器位置:
在线程组下,执行:添加 ---->> 逻辑控制器 ---->> 如果(If)控制器

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,)}
三、总结
在if逻辑控制器的Expression中不能直接填写条件表达式,需要借助函数将条件表达式计算为true/false,可以借助的函数有__jexl3和__groovy函数
Jmeter逻辑控制之if控制器的更多相关文章
- Jmeter --- 逻辑控制之if控制器
一.背景 在实际工作中,当使用Jmeter做性能脚本或者接口脚本时,有可能会遇到需要对不同的条件做不同的操作,基于这种诉求,在Jmeter中可使用if控制器来实现 二.实际操作 逻辑控制器位置: 在线 ...
- 性能测试之jmeter逻辑控制种类详解一
逻辑控制器介绍 Jmeter逻辑控制可以对元件的执行逻辑进行控制,除Once only Controller仅一次控制器以外,其他控制器都可以可以嵌套其他种类的控制器,下面是jmeter5.3支持的控 ...
- 【JMeter_16】JMeter逻辑控制器__随机控制器<Random Controller>
随机控制器<Random Controller> 业务逻辑: 当每次执行到该逻辑控制器时,随机挑选控制器下的任意一个子节点<取样器.逻辑控制器> Ignore sub-cont ...
- 【JMeter_17】JMeter逻辑控制器__随机顺序控制器<Random Order Controller>
随机顺序控制器<Random Order Controller> 业务逻辑: 当控制器被触发时,将控制器下的所有子节点顺序打乱执行一遍,执行一遍,执行一遍,不是执行一个. 注意:是将子节点 ...
- JMeter 逻辑控制之While循环控制器(While Controller)
逻辑控制之While循环控制器(While Controller) by:授客 QQ:1033553122 测试环境 apache-jmeter-2.13 1. 添加While Control ...
- 性能测试工具JMeter 基础(九)—— 测试元件: 逻辑控制器之交替控制器
交替控制器:根据被控制器触发执行次数,去依次执行控制器下的子节点(逻辑控制器.采样器),可以由线程组的线程数.循环次数.逻辑控制器触发. 交替控制器(lnterleave Controller) 简单 ...
- 性能测试工具JMeter 基础(八)—— 测试元件: 逻辑控制器之事物控制器
事物控制器是将控制器下的所有取样器作为一个事物统计.分析 事物控制器(Transaction Controller) 事务控制器一共有两个选项: Generate parent sample:默认不勾 ...
- Jmeter(十九)_ForEach控制器实现网页爬虫
一直以来,爬虫似乎都是写代码去实现的,今天像大家介绍一下Jmeter如何实现一个网页爬虫! 龙渊阁测试开发家园 317765580 Jmeter的爬虫原理其实很简单,就是对网页提交一个请求,然后把返回 ...
- 如何在JMeter中使用ForEach控制器
Jmeter中的ForEach Controller遍历变量数组. 在这个JMeter教程中,我们将使用ForEach控制器循环访问JSON数组. 有时我们需要解析响应并提取某些信息.例如,在测试AP ...
随机推荐
- LeetCode 94. 二叉树的中序遍历(Binary Tree Inorder Traversal)
94. 二叉树的中序遍历 94. Binary Tree Inorder Traversal 题目描述 给定一个二叉树,返回它的 中序 遍历. LeetCode94. Binary Tree Inor ...
- 【转帖】linux内存管理原理深入理解段式页式
linux内存管理原理深入理解段式页式 https://blog.csdn.net/h674174380/article/details/75453750 其实一直没弄明白 linux 到底是 段页式 ...
- 元组的简单介绍——参考Python编程从入门到实践
元组 用于存储一系列不可修改的元素 1. 元组的定义 dimensions = (200, 50) # 定义一个元组,即将元素用圆括号括起来 print(dimensions[0]) # 打印元组中的 ...
- Python 数据结构理解分享
摘要:分享学习Python数据结构的一些理解,主要包含序列(如列表和元组),映射(如字典)以及集合3中基本的数据结构,以及可变和不可变数据类型. Python 中的数据结构是根据某种方式将数据元素组合 ...
- on duplicate key mysql插入更新
insert into `test` (`job_id`, `user_name`, `total_time`) values ('12345', 'zhangsan', '10') on dupli ...
- golang开发:(一)开发环境搭建vagrant+VirtualBox
开发环境介绍 不管何种开发语言,目前用的比较多的开发环境基本就是Vagrant+VirtualBox搭建的虚拟开发环境,这种开发环境的好处就是一次搭建处处可用,各个平台和系统都可以使用.开发团队中,可 ...
- 【统计与建模】R语言基本操作
# vec <- rep( seq(1,5,by=0.5),3) # vec <- seq( 1 , 10 , by = 1 ) # min(vec) #最小值 # max(vec) #最 ...
- 动态script标签同步加载 ps:无打包编译,静态实现静态资源入口动态配置,无编译打包静态资源添加版本号
/**功能:创建动态标签加载css ,js文件,重点是js文件,利用onloading加递归实现动态标签的同步加载用法:在html文件body底部script内部声明并调用下列函数,obj中写要加载的 ...
- markdown语法之列表与缩进
在markdown语法中, 用*或+或-在行首表示无序列表.在这些符号之后应该空一格然后输入内容. 例如 + 无序列表 * 无序列表 - 无序列表 会被markdown语法渲染为 无序列表 列表嵌套 ...
- .Net Core Mvc/WebApi 返回结果封装
一.背景 为了方便开发,简化代码,也为了与前端方便对接,需要对接口服务返回结果进行统一处理. .Net Core 中返回结果的处理与 .Net Framework 中的处理不一样. .Net Core ...