一、背景

在实际工作中,当使用Jmeter做性能脚本或者接口脚本时,有可能会遇到需要对不同的条件做不同的操作,基于这种诉求,在Jmeter中可使用if控制器来实现

 作用:根据给定表达式的值决定是否执行该节点下的子节点,默认使用javascript的语法进行判断(如下图红框内的文字)。

二、实际操作

逻辑控制器位置:

  在线程组下,执行:添加  ---->> 逻辑控制器 ---->> 如果(If)控制器

例如:要实现登录成功后进行其他操作,登录是否成功用正则表达式获取token来判断

那么看下if控制器,

参数:

  • Interpret Condition as Variable Expression?:选中这一项时表示:判断变量值是否等于字符串true(不区分大小写)
  • Evaluate for all children:如果选中这一项,在每个子结点执行前都会计算表达式

示例一:使用表达式的方式进行判断:

if控制器判断的写法是 “”“变量”=="值" 这样的写法,if控制器下有个选项是Interpret Condition as Variable Expression?翻译过来意思是将条件解释为变量表达式?

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,)}

那么此处判断的条件是token不等于0,填入if控制器中,执行

执行结果通过。

ps: 也可以使用用户自定义变量的方式,直接设置变量的值为true,也 可以进入if控制器

示例二:使用JavaScript进行条件解释

不勾选Interpret Condition as Variable Expression?选项,设置条件为token不等于0 ,进行执行

最后执行成功。

转载于:https://www.cnblogs.com/gezirui/p/9618411.html

jmeter控制器--if控制器相关推荐

  1. jmeter之录制控制器与代理的使用

    jmeter之录制控制器与代理的使用 1.       先启动jmeter,在测试计划中添加线程组 2.       选中线程组右键添加,在配置元件中点击HTTP请求默认值 3.       选中线程 ...

  2. jmeter持续时间循环控制器_不写代码实现条件循环?只用Jmeter就能实现

    Jmeter是常用的接口测试工具,可以方便地对各种接口进行测试.有时,我们可能需要在一次测试流程中对某个接口进行若干次请求,以达成一定目的.这时,我们无需在脚本中重复添加类似的请求,可以利用Jmete ...

  3. jmeter使用if控制器_Jmeter 常见逻辑控制器详解

    简介 Jmeter有很多逻辑控制器,可以控制请求的执行顺序和执行逻辑,本文就Jmeter常见的逻辑控制器做一个详细的描述,并通过示例让大家了解逻辑控制器的作用. 代码的逻辑分支通常有:条件判断IF多条 ...

  4. JMeter 接口测试-if控制器

    今天是小雪节气: 小雪是二十四节气中的第20个.起点于每年公历11月22日或23日,太阳位于赤纬-20°16',到达黄经240°. JMeter 接口测试-if控制器 使用场景: 当业务场景是用户登录 ...

  5. Jmeter接口测试-if控制器

    点击箭头处"蓝色字",关注我哦!! 小雪是二十四节气中的第20个.起点于每年公历11月22日或23日,太阳位于赤纬-20°16',到达黄经240°. JMeter 接口测试-if控 ...

  6. Jmeter之循环控制器

    Jmeter之循环控制器 (Jmeter如何控制每个线程发送的请求数) Jmeter的逻辑控制器中的循环控制器控制每个线程循环发送的请求数据,逻辑控制器中的循环次数与线程组中的循环次数同时配置的话则叠 ...

  7. jmeter持续时间循环控制器_jmeter 循环控制器使用

    案例一: 一.认识循环控制器 如下图:新增一个循环控制器 循环控制器的设置界面: 循环次数:永远和自定义次数,这个应该比较好理解. 二.使用循环控制器 其实大家对Jmeter的熟悉的话,应该会想到,线 ...

  8. JMeter ForEach循环控制器

    JMeter ForEach循环控制器 ForEach循环控制器与用户定义变量使用 1.添加 用户定义的变量(遍历的数据) 2.添加 ForEach控制器 含义 3.在 ForEach控制器下,添加请 ...

  9. jmeter使用if控制器_Jmeter(七)_if控制器+循环控制器+计数器控制接口分支

    最近查阅了一下网上关于if控制器的文章,大同小异,几乎找不到原创,于是决定自己写一篇 下午测试接口,遇到了一个审核的流程.逻辑很简单,就是审核不通过之后返回去继续修改再提交,然后再审核,直到通过为止. ...

  10. Jmeter 随机控制器-随机顺序控制器

    随机控制器 随机逻辑控制器的行为与交替控制器相似,不同之处在于它不是按顺序执行其中的请求,而是每次执行时,在控制的请求中随机一个. 随机控制器中,每个线程每次循环时,可能调用其中的一个请求,调用一个请 ...

最新文章

  1. redis mysql 集群_mysql_redis
  2. 基于光流的3D速度检测
  3. java spring 服务器关闭_通过springboot怎么停止服务器??
  4. TFS2012 服务器安装
  5. NodeMCU学习(三) : 进入网络世界
  6. python版本回退_Python爬虫之BeautifulSoup解析之路
  7. asp.net定时执行任务-解决应用池回收问题----转载
  8. Maven搭建Nexus私服
  9. CUDA11.1安装教程(python3.8)
  10. Linux/Document: Livepatch
  11. python跳一跳编程构造_Python + 新手 制作“跳一跳”辅助程序
  12. Chrome的插件扩展程序安装目录是什么?在哪个文件夹?
  13. python1e2_Python必修基础(1)
  14. JWT学习(二):Json Web Token JWT的Java使用 (JJWT)
  15. 机器学习 Machine Learning- 吴恩达Andrew Ng 第21~25课总结
  16. Web开发:布局视口、视觉视口、理想视口
  17. android imagebutton的点击事件,Android 点击ImageButton时有“按下”的效果的实现
  18. Python爬虫教程(纯自学经历,保姆级教程)
  19. 开发调试指令大全--(博通开发调试命令)
  20. 数据分析师课程(ArcGIS按属性选数据、各种数据分析案例)

热门文章

  1. [转]JavaScript优化方案
  2. 水晶报表自定义函数(替换并截取特殊字符后内容)
  3. Android App列表之游标ListView(索引ListView)
  4. step5 . day6 网络编程 基于TCP协议的多并发模式(使用多进程、多线程、select函数分别实现)...
  5. JS_arguments
  6. KR C 传统C语言的函数定义
  7. javascript学习-创建json对象数据,遍历
  8. Oracle 游标的各种写法
  9. SQL 语句递归查询 With AS 查找所有子节点
  10. AFNetworking框架-详细解析