软件测试技能,JMeter压力测试教程,逻辑控制器之While控制器(二十九)

目录:导读

    • 一、前言
    • 二、While控制器
    • 三、Condition 条件
    • 四、Condition 为true或false
    • 五、Condition 表达式结果不是true或false

一、前言

循环控制器可以设定永远循环和循环次数,缺少条件判断。While控制器可以在循环的基础上加判断,当条件为false的时候跳出循环。

二、While控制器

线程组 -> 添加 -> 逻辑控制器 -> While控制器
软件测试技能,JMeter压力测试教程,逻辑控制器之While控制器(二十九)_第1张图片
Condition (function or variable) 可以是条件(函数或变量),条件为 Flase 的时候,才会跳出 While 循环,否则一直执行 While 控制器下的样例

表达式为空:一直执行

表达式为true:一直执行

表达式为false:则跳出循环
软件测试技能,JMeter压力测试教程,逻辑控制器之While控制器(二十九)_第2张图片

表达式结果不是true或false:就一直执行,所有需要用__jexl3()函数转成true或false

三、Condition 条件

1.如果Condition 条件为空,当 While 控制器下最后一个样例执行失败后,跳出循环

在While控制器添加一个HTTP请求软件测试技能,JMeter压力测试教程,逻辑控制器之While控制器(二十九)_第3张图片
那么会一直请求,除非这个请求报错(最后一个样例执行失败)才会停止软件测试技能,JMeter压力测试教程,逻辑控制器之While控制器(二十九)_第4张图片
在While控制器添加多个HTTP请求,只有最后一个请求报错才会停止(注意是最后一个)软件测试技能,JMeter压力测试教程,逻辑控制器之While控制器(二十九)_第5张图片
While控制器有请求A,请求B,请求C,当请求B和A报错都不会停止,当最后一个请求C报错就停止了

1.如果Condition 条件输入LAST ,功能是 While 控制器 前一个样例执行失败,则不会进入While循环,也就是不会执行While控制器下的样例软件测试技能,JMeter压力测试教程,逻辑控制器之While控制器(二十九)_第6张图片
当我们在While控制器 前面添加一个请求,如果这个请求是成功的,那么进入wihle循环,跟上面Condition 条件为空是一样的(最后一个报错退出循环)
软件测试技能,JMeter压力测试教程,逻辑控制器之While控制器(二十九)_第7张图片
如果 While 控制器前一个样例执行失败,则不会进入While循环,接下来故意让前面的请求失败软件测试技能,JMeter压力测试教程,逻辑控制器之While控制器(二十九)_第8张图片

四、Condition 为true或false

1.当表达式为true,会一直执行,不管最后一个是不是失败都会一直循环
软件测试技能,JMeter压力测试教程,逻辑控制器之While控制器(二十九)_第9张图片
2.当表达式为false,不执行 While 控制器软件测试技能,JMeter压力测试教程,逻辑控制器之While控制器(二十九)_第10张图片
3.也可以借助函数助手,生成__jexl3()__groovy()函数转成true或false,参考前面如果(If)控制器软件测试技能,JMeter压力测试教程,逻辑控制器之While控制器(二十九)_第11张图片
4.不用函数,直接用变量也可以:“${user}”==“admin”

五、Condition 表达式结果不是true或false

如果Condition 表达式结果不是true或false,就一直执行,比如我这里引用变量${user}, 它的结果是”admin”软件测试技能,JMeter压力测试教程,逻辑控制器之While控制器(二十九)_第12张图片
表达式结果不是true或false,就一直执行,直到结果为false就退出循环


你可能感兴趣的:(测试,软件测试,压力测试,压力测试,jmeter,软件测试,测试类型,测试工程师)