性能测试|JMeter逻辑控制器(十)

举报
Tester_muller 发表于 2023/01/12 18:13:29 2023/01/12
【摘要】 Jmeter 逻辑控制器 之 if 控制器在实际工作中,当使用JMeter做性能测试脚本或者接口测试脚本时,当遇到需要对不同的条件做不同的操作时,我们可以使用JMeter中如果(If)控制器来实现。 认识if 控制器老规矩,还是新建一个if控制器来介绍这个控制器。如下图:Expression (must evaluate to true or false):表达式(值必须是true或fal...

在这里插入图片描述

Jmeter 逻辑控制器 之 if 控制器

在实际工作中,当使用JMeter做性能测试脚本或者接口测试脚本时,当遇到需要对不同的条件做不同的操作时,我们可以使用JMeter中如果(If)控制器来实现。

认识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” 条件。

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

在这里插入图片描述

补充:

条件有:


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

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

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

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

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

另外,如果时字符串必须要用引号,变量都认为时字符串的形式,如:

${__jexl3("${ischildren}"=="y",)}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。