栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

(详细)Jmeter实现多线程执行请求1,其返回值作为请求2的参数,并循环发送请求2,直至跳出循环

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(详细)Jmeter实现多线程执行请求1,其返回值作为请求2的参数,并循环发送请求2,直至跳出循环

Jmeter实现线程组执行连环+循环请求
  • 一、案例场景
    • 实现功能
  • 二、Jmeter配置步骤
    • 线程组请求1配置
    • 线程组请求2配置
  • 三、启动线程组

一、案例场景 实现功能

多线程同时发送请求1,获得结果task_id作为请求2的参数,获取请求2返回值,如果status=running则循环请求2,直至status=success跳出循环,返回值皆是Json格式

二、Jmeter配置步骤

1. 线程组配置如下: (线程组中2个线程同时请求,循环1次)

2. 整体请求结构如下:(每个线程发送请求1后循环发送请求2)

3. 请求1结果格式

{
    "task_id": "XXXXX-XXXXX-XXXXX-XXXXX"
}

4. 请求2结果格式

{
    "email": [
        "XXXXXXXXX"
    ],
    "status": "success",	//running或success
    "task_id": "XXXXX-XXXXX-XXXXX-XXXXX",    //同请求1的task_id
    "task_reason": "",
    "task_result_files": [
        "URL1",
        "URL2"
    ]
}
线程组请求1配置

1. 请求1的参数配置如下:

注: 如果参数中包含文件,MIME Type一定要写正确

2. 为请求1添加后置处理器JSON Extractor:

因为要获取请求1的返回值,作为请求2的参数。所以添加后置处理器JSON Extractor获取返回值,其中$.task_id 是获取task_id值的表达式

jmeter中JSON Extractor用法参考文章点此

线程组请求2配置

请求2需要获取请求1的返回值,且在while循环中判断请求2的返回值是否跳出循环,目前我的配置只实现了请求2的循环,但当status为success时跳出循环这项未能实现

1. 请求2的参数配置如下:

请求2需要获取请求1后置处理器存放的值task_id,参数处获取task_id方式如图: ${task_id}

2. 为请求2添加正则表达式处理器:

正则表达式处理器的目的是在多个返回值字段中获取某个字段的值,这里获取的是status字段,我的正则表达式不一定正确,如果有知道正确答案的麻烦评论告诉我一下,谢谢~

3. 为请求2添加While Controller:

JMeter 逻辑控制之While循环控制器(While Controller)点此

添加WhileController是为了让线程组循环该请求,此处我的判断语句为:

${__javascript("${status}"=="running")&&"${task_id}!=null"}  //当status=running且task_id不为null时循环

4. 为请求2添加固定定时器Constant Timer:

为每次线程组的循环请求 设置间隔时间,此处设置的4秒请求一次

三、启动线程组

启动线程组,查看请求2的返回结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/351602.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号