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. 添加监听器

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

在这里插入图片描述

相关文章

Jmeter:Authenticationcredentialswerenotprovided上次在使...
初次使用jmeter时,结果树中返回的数据为未转码内容,如下:...
jmeter默认语言设置: 1、临时设置:进入options--ChooseLa...
第一步:打开jmeter工具。 第二步:点击鼠标右击,点击添加...
在之前的博文中,Jmeter二次开发——基于Java请求,已介绍了...
打开虚拟机然后用远程连接工具SSH连接到数据库将serveragent...