jmeter-While控制器


While控制器

存在一些使用场景,比如:某个请求必须等待上一个请求正确响应后才能开始执行。或者,不断去请求某个接口的响应结果,当它达到某个状态时才开始后续请求。


注意:本文说明均以示例中的接口为依据。

一、[While控制器]的理解

可以类比C++中的do-while循环。
do…while 循环会确保至少执行一次循环。如果条件为真,控制流会跳转回上面的 do,然后重新执行循环中的 statement(s)。这个过程会不断重复,直到给定条件变为假为止。

do{
    statement(s);
}while(condition);

二、[While控制器]的示例

以简单的登录场景示例。假设:
某登录接口,其登录成功后的响应消息体如下:

{
    "data": {
        "access_token": "2ssas3dc6e2da",
        "user_id": "12333",
        "nickname": "jmeter",
        "token_type": "bearer",
        "username": "jmeter"
    },
    "message": "操作成功",
    "status": 1000,
    "timestamp": 1653398856152
}

其登录失败后的响应消息体如下:

{
    "data": null,
    "message": "用户被禁用或不存在",
    "status": 1033,
    "timestamp": 1653399781867
}

则可模拟场景:如果登录请求未返回预期的状态码,则一直请求登录接口,直至登录成功。

三、[While控制器]的使用

1.添加控制器

在线程组或相关控制器中,选择“逻辑控制器-While控制器”进行添加。

添加While控制器

2.在While控制器中添加请求

根据使用场景,在While控制器中添加相关请求。(本示例:登录接口)
注意:While控制器中的请求将至少执行1次。
在While控制器中添加请求
使用JSON提取器从请求响应中提取目标参数,并设置为变量。(本示例:status)
在这里插入图片描述

3.设置循环条件

设置While控制器的循环条件。当条件满足时,将继续执行该循环控制器的请求。条件不满足时,则跳出循环。(本示例:判断status的值)
可在While控制器的条件框中填写:

//当状态码不等于1000时,则继续请求登录
${__javaScript("${status}" != 1000)}

在这里插入图片描述


运行效果

条件一次即为假时,接口请求一次即结束循环;
一次循环

条件为真时,将持续循环,直至条件为假时,跳出循环。
多次循环

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值