当前位置: 首页 > news >正文

接口自动化入门 —— Jmeter实现在接口工具中关联接口处理方案

1. JMeter 接口关联处理的核心概念

接口关联是指在多个接口请求之间共享数据,例如将一个接口的返回值作为另一个接口的输入参数。常见的场景包括:

使用登录接口返回的 Token 作为后续接口的认证信息。

将一个接口返回的 ID 作为另一个接口的请求参数。‍

图片

2. 实现接口关联的步骤

2.1 创建测试计划

打开 JMeter,创建一个新的测试计划。

添加线程组(Thread Group),用于定义并发用户数和循环次数。

2.2 添加 HTTP 请求

在线程组下添加 HTTP 请求(Sampler),配置接口的 URL、请求方法(GET/POST)、参数和请求头。

如果接口需要特定的请求头(如 Content-Type: application/json),可以通过 HTTP 信息头管理器(HTTP Header Manager)进行设置。

2.3 提取接口返回值

使用 JSON 提取器:在需要提取数据的 HTTP 请求下,添加后置处理器(Post-Processor)中的 JSON 提取器(JSON Extractor)。

配置变量名称和 JSON 表达式,例如提取登录接口返回的 Token。

示例:如果返回值为 {"token": "abc123"},可以使用表达式 $.token 提取 Token。

使用正则表达式提取器:对于非 JSON 格式的响应,可以使用正则表达式提取器。

2.4 将提取的值传递给后续接口

设置全局变量:通过 Beanshell 后置处理程序(Beanshell PostProcessor)将提取的值设置为全局变量。

示例代码:vars.put("Token", vars.get("token"));,将提取的 Token 设置为全局变量 Token。

在后续接口中使用变量:

在 HTTP 请求的请求头或参数中引用全局变量,例如 Authorization: Bearer ${Token}。

2.5 添加断言验证

为每个接口添加断言(Assertion),验证接口的响应是否符合预期。

使用响应断言(Response Assertion)验证响应文本或状态码。

使用 JSON 断言验证 JSON 响应中的特定字段。

2.6 添加监听器查看结果

添加监听器(Listener),如“查看结果树”(View Results Tree)或“聚合报告”(Aggregate Report),用于查看测试结果。‍

图片

3. 示例:登录接口与后续接口的关联

假设有一个登录接口返回 Token,后续接口需要使用该 Token 进行认证:

登录接口:

添加 HTTP 请求,发送登录请求。

添加 JSON 提取器,提取返回的 Token。

添加 Beanshell 后置处理程序,将 Token 设置为全局变量。

后续接口:

添加 HTTP 请求,配置请求头 Authorization: Bearer ${Token}。

添加断言验证接口返回结果。‍

图片

4. 注意事项

数据类型处理:确保提取的值与接口要求的数据类型一致(如字符串、数字)。

错误处理:在提取器中设置默认值,防止因提取失败导致后续接口失败。

性能优化:避免在每个请求中重复提取相同的值,尽量复用全局变量。‍

图片

5. 总结

通过 JMeter 的后置处理器(如 JSON 提取器和 Beanshell 后置处理程序),可以轻松实现接口之间的数据关联。这种关联处理方式不仅适用于登录 Token 的传递,还可以用于其他需要动态参数的场景

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

相关文章:

  • 面试之《什么是流式渲染》
  • 11. Pandas :操作Excel文件(Excel报表的案例研究)
  • Python第十八课:目标检测 | 让计算机看懂世界
  • BambuStudio学习笔记:ModelArrange
  • Qt开源控件库(qt-material-widgets)的编译及使用
  • thinkphp download()函数下载中文名文件名乱码
  • HCIP复习拓扑练习(修改版)
  • Qt 6.6.1 中 QPixmap::grabWindow() 的用法与替代方案
  • 【数据分析】有关DataFrame的知识(2)
  • ruoyi-cloud-plus编译记录-1
  • 【Linux】:封装线程
  • AutoGen多角色、多用户、多智能体对话系统
  • Qt 数据库操作(Sqlite)
  • 搭建大数据技能竞赛比赛环境容器docker模块A-容器绑定物理网卡
  • Axios简单说明,快速上手
  • 电器维修系统小程序+论文源码调试讲解
  • 为什么 HTTP GET 方法不使用请求体?
  • 前端项目使用多个echarts版本的实践方案
  • ESP-IDF ubuntu版本 V5.2
  • C语言操作MySQL从入门到精通
  • 自然资源部印发地理信息数据分类分级指南
  • 阿曼宣布美国与胡塞武装达成停火协议
  • 有人悬赏十万寻找“全国仅剩1只”的斑鳖,发帖者回应并证实
  • 特朗普要征电影关税惊扰全球电影业,“让好莱坞再次伟大”或现反效果
  • 100%关税!特朗普要让美国电影100%美国制造
  • 长三角铁路今日预计发送390万人次,昨日客发量同比增长10.5%