最近工作不忙,利用空闲时间整理了下Jmeter的相关知识,下面给大家分享下Jmeter中 如果(if)控制的使用和应用。

如下图:线程组 > 添加 > 逻辑控制器 > 如果 (if) 控制器

Expression (must evaluate to true or false) :表达式(值必须是true或false),也就是说,在右边文本框中输入的条件值必须是true 或 false,(默认情况下)

Interpret Condition as Variable Expression?:默认勾选项,将条件解释为变量表达式(需要使用__jexl3 or __groovy 表达式)

Evaluate for all children?:条件作用于每个子项(具体理解见后面的列子说明)

注:

1、文本框上的黄色感叹号,就是提示你,建议采用__jexl3 or __groovy 表达式,以提高性能,也就是默认的方式。

2、if 控制器 只能作用于其下的子项

一、默认用法,采用__jexl3 or __groovy 表达式

如下图,if 控制器 下 有一个 访问百度首页 的取样器,只有if条件满足时,才会执行该取样器。采用默认方式,将条件1==1,放入 __jexl3表达式中。

如果不知道表达式如何使用,可使用Jmeter 的函数助手,如下:

二、直接输入条件

如下图,去掉 “Interpret Condition as Variable Expression?” 前面复选框,直接输入条件 1==1。访问百度首页的取样器将被执行。

三、条件中使用变量

很多情况下,需要根据用户变量或者上一个取样器的返回值来进行条件判断,觉得是否需要执行某一个的取样器。

如下,新增一个用户变量:ischildren。条件:ischildren 的值为 y 的时候,才执行 访问百度首页 的取样器。

或者可以用表达式:${__jexl3("${ischildren}"=="y",)}。

四、Evaluate for all children? 的用法

在 上面了解了条件中如何使用变量,那么如果 if 控制器下的取样器执行后,改变了该变量的值,if 控制器下 其后的取样器还会被执行吗?看看下面的列子:

if 控制器下  有 3 个取样器,变量 ischildren 的初始值为 y,if 控制器的条件为:${__jexl3("${ischildren}"=="y",)}。

开始满足条件,那么应该执行 访问百度首页 、访问百度新闻页、访问百度贴吧 3个取样器,

但是 访问百度新闻页 执行后,将ischildren 的值变了 n,已经不能满足 "${ischildren}"=="y" 条件。

所以 访问百度贴吧 这个取样器不会被执行。

如果这个时候,去掉  Evaluate for all children? 的勾选,会发生什么呢,大家可以自己动手试试。

补充:

条件有:

==  等于,如 1==1 或 ${__jexl3(1==1,)}

> 、< 大于 小于,如 2>1,1<2,或 ${__jexl3(2>1,)}

>=、<= 大于等于  小于等于,如 2>=1 ,或 ${__jexl3(2>=1,)}

!=、!不等于,非,如 "y"!="n",非 则取 != 的反值

多条件可用:|| 或,&& 和,如:2<5 && 2>1,${__jexl3(2<5 && 2>1,)}

另外,如果时字符串必须要用引号,变量都认为时字符串的形式,如:${__jexl3("${ischildren}"=="y",)}

今天分享到这里啦,大家多多指点,测试任务来了,又要干活了。

最新文章

  1. Runner站立会议08
  2. PostgreSQL的时间/日期函数使用
  3. Linux中执行shell脚本的4种方法
  4. java 多线程编程三种实现方式
  5. [mysql]MySQL忘记密码
  6. 012医疗项目-模块一:统一异常处理器的设计思路及其实现(涉及到了Springmvc的异常处理流程)
  7. suse linux 操作系统下打BASH补丁
  8. C#截取文件的文件夹地址
  9. SQL server 常见用法记录
  10. 如何禁止anonymous用户访问nexus
  11. 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
  12. iOS 面试题集合
  13. isset,empty,is_null小知识
  14. poj2739尺取法+素数筛
  15. Python 学习笔记1 安装和IDE
  16. .NetCore实践篇:分布式监控Zipkin持久化之殇
  17. bootstrap 模态 modal 小例子【转】
  18. java解析前端请求接口的全部入参
  19. 十六. Python基础(16)--内置函数-2
  20. Jacobi并行拆解【补充】

热门文章

  1. Unity经典游戏教程之:合金弹头
  2. Jquery 实现添加删除,checkbok 的全选,反全选,但是批量删除没有实现
  3. Eclipse+CXF框架开发Web服务实战
  4. 解读 PHP 的 P++提案
  5. 【POJ - 3255】Roadblocks(次短路 Dijkstra算法)
  6. 洛谷 P1960 列队
  7. 【Isabella Message】 【SPOJ - ISAB】【模拟】【矩阵的旋转】
  8. springboot项目中的普通Session和使用redis存储session
  9. 使用flask-restful搭建API
  10. vue父子组件通信高级用法