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

在这里插入图片描述


运行效果

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

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

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
JMeter的While控制器是一种逻辑控制器,用于在满足特定条件的情况下循环执行一组样例。根据引用\[1\]和引用\[2\]的内容,可以了解到While控制器的属性和条件设置。 While控制器的属性包括名称、注释和条件。名称和注释可以根据需要进行设置。条件可以是一个函数或变量,当条件为False时,循环将跳出,否则将一直执行While控制器下的样例。 条件可以使用JMeter的内置函数(如__javaScript、__jexl3、__jexl2)进行运算。常用的比较运算符有大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(!=)。条件可以是数值类型或引用类型,当引用类型为字符串时,需要在函数中添加引号。 根据引用\[3\]的内容,如果条件设置为LAST,则表示如果While控制器前一个样例执行失败,则不会进入While循环。如果条件为空,则表示循环中有取样器执行失败时停止循环。如果条件为true或false,则根据条件的值来控制是否执行While控制器。 综上所述,JMeter的While控制器可以根据条件循环执行一组样例,条件可以是函数或变量,满足条件时循环继续执行,不满足条件时循环结束。 #### 引用[.reference_title] - *1* *3* [软件测试技能,JMeter压力测试教程,逻辑控制器之While控制器(二十九)](https://blog.csdn.net/x2waiwai/article/details/123031442)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [JMeter While控制器](https://blog.csdn.net/qq_38776582/article/details/119136730)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值