微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Jmeter实战轮询while control

Jmeter实战轮询(while control)


接口调用顺序就是:

  1. 调用 POST /api/files 上传一个视频,获得视频 ID
  2. 调用 POST /api/tasks 创建一个视频解析任务,传入算法 ID 和 视频 ID。 算法ID 是写死的 2,视频ID用第一步返回的。
  3. 调用 GET /api/tasks/{task_id} 获取任务状态和返回结果ID,轮询等待结果。
  4. 调用 GET /api/files/{file_id} 下载处理结果文件

脚本编写步骤:

1. 创建线程组

脚本整体结构如下:

在这里插入图片描述

2. 创建事务控制器

在这里插入图片描述

3. 添加调试取样器

用于获取一个接口返回值,作为当前接口的输入

在这里插入图片描述

在结果数中查看,调试取样器的响应数据:

在这里插入图片描述

video_Id_ALLtask_Id_ALLstatus_ALL是后续接口中需要传入的变量,可以在后边的接口中引用,引用方式为${变量}.

4. 添加取样器

开启接口的事务流程:

4.1 调用 POST /api/files 上传一个视频,获得视频 ID

在这里插入图片描述

在这里插入图片描述

**图中需要注意:**点击文件上传、勾选 对post使用multipart/form-data,实现视频文件上传

4.2 调用 POST /api/tasks 创建一个视频解析任务

需要传入算法 ID 和 视频 ID。 算法ID 是写死的 2,视频ID用第一步返回的。

在这里插入图片描述

  • Http 信息头管理器

在这里插入图片描述

在这里插入图片描述

User-Agent	Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
Content-Type	application/json
Accept	*/*
Accept-Encoding	gzip, deflate
Accept-Language	zh-CN,zh-TW;q=0.9,zh;q=0.8,en-US;q=0.7,en;q=0.6
Connection	keep-alive

4.3 调用 GET /api/tasks/{task_id} 获取任务状态和返回结果ID

在这里插入图片描述

在这里插入图片描述

  • Json提取器(获取Status)

    在这里插入图片描述

  • BeanShell后处理器,用于记录轮序次数
    设置count变量为1

    在这里插入图片描述


    vars.put("count","1");

4.4 接口轮询(获取任务状态和返回结果ID的接口)

在这里插入图片描述

  • While 控制器

在这里插入图片描述


循环条件:循环次数<10 且 status != "FINISHED"

${__javaScript(${count}<10 && "${status_ALL}"!="FINISHED")}

在这里插入图片描述


- 固定定时器
轮询间隔10s

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

4.5 调用 GET /api/files/{file_id} 下载处理结果文件

在这里插入图片描述


在这里插入图片描述

5. 添加监听器

轮询成功后,获取最终的渲染信息

在这里插入图片描述

原文地址:https://blog.csdn.net/weixin_39451323/article/details/122351082

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐