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

六、接口关联

1、什么叫接口关联?

前面的接口响应中,有后面接口请求需要的参数值。那么这两个接口就存在关联

如token(用户鉴权),如果是登录之后才能成功请求的接口必须要接口鉴权,需要再发起请求的时候带上token,通常都是从登录接口的响应参数中获取到的。

在jmeter中,接口关联的处理:在前边的接口中加一个后置处理器。把响应的内容提取出来,用一个变量接收,后边的接口需要用的时候就可以直接引用这个变量获取。

调试取样器:一般用来debug调试,查看中间变量的值,可以帮助我们分析问题

2、jmeter处理接口关联:后置处理器

后置处理器:每个接口发送完请求/收到响应之后要做的事情

2.1 json提取器

当响应体的结构为json时,优先使用json提取器

注:如果你想要提取的数据不在响应体中就不能用json提取器。只能提取响应体不能从其他的部分提取 【局限性】

 

名称:给这个JSON提取器起一个名字,方便后续在测试计划中识别和管理

Apply to:

  • Main sample and sub-samples:对主样本和子样本都应用(如HTTP请求及其所有重定向/附加请求)。
  • Main sample only:只对主样本应用(即只对主HTTP请求的响应体提取)。
  • Sub-samples only:只对子样本应用(如重定向或附加请求)。

  • JMeter Variable Name to use(要使用的JMeter变量名)

    • 作用:指定要从哪个变量中提取JSON内容。
    • 默认:通常是responseBody,即从响应体中提取。
    • 高级用法:如果你要从其他变量(如前置处理器设置的变量)中提取,可以填写对应变量名。

Names of created variables(创建变量的名称):

  • 作用:填写你希望提取出来的数据存储到哪个变量名中。
  • 格式:可以填写多个变量名,用分号分隔。
  • 举例token;gqid

JSON Path expressions(JSON路径表达式)

  • 作用:填写对应的JSONPath表达式,用于从JSON数据中提取你需要的字段。
  • 格式:每一行对应一个上面变量名的提取规则。
  • 举例$..token;$..gqid
json的表达式:
1、返回的结果是数组【列表】,可能会有多个值,所以要用具体的值要索引取值。
2、绝对路径: $.根节点名.二级节点名称,如果有数组/列表,[0]索引取值 -- 不推荐 麻烦
3、相对路径: $..末梢节点名称 【递归写法】 -- 推荐

Match No. (0 for Random)(匹配编号,0表示随机)

  • 作用:指定提取第几个匹配结果。
  • 常用值
    • 1:第一个匹配项
    • 2:第二个匹配项
    • 0:随机一个匹配项
    • -1:全部匹配项(会生成变量名后缀为_ALL的变量)
1、当json提取的结果只有一个值的时候: 填>=0的任何一个数字都可以拿到这个值
2、json提取到多个值的时候:
        在调试取样器里会有jid_MatchNr的值表示这个变量取到多少个值
3、正数:如果返回的值的量大于这个正数据,就是对应的位置值【1-第一个值,2-第二个值】
4、如果返回值数量小于填的正数,拿到的就是空。
5、负数: 返回所有的值,变量名称加上下划线和数字, 引用的时候,变量名称已经变了。【name_1,name_2】此时直接写这个变量名取不到任何数据的。

 

 Compute concatenation var (suffix ALL)(计算拼接变量(后缀ALL))

  • 作用:如果选择,JMeter会把所有匹配项拼接成一个字符串,变量名会加_ALL后缀。
  • 用途:适合需要所有匹配项合并时使用。

Default Values(默认值)

  • 作用:如果JSON路径没有提取到内容,变量会被赋予这个默认值。
  • 建议:可以填写如NOT_FOUND等,便于判断提取失败。
  • 写多个json提取式的时候,一定要填默认值了,不填会报错。

 2.2 正则表达式

可以提取响应/请求中的任何信息,相对会复杂一些

 配置与json提取器差不多,这里不赘述

正则表达式写法: 左边界(正则式)右边界
1、以小括号为标识,小括号里面的内容,就是正则式 --正则表达式匹配的内容就是提取的内容
2、要准确的写出左边界和右边界
3、正则式要写正确: 推荐使用万能匹配表达式 (.*?) 正则提取器中的模板:写法 $数字$
4、如果正则表达式里有多个括号(),那么这个模板就是取第几个括号的值;

正则表达式语法手册:

https://tool.oschina.net/uploads/apidocs/jquery/regexp.html

2.3 边界值提取器

 如果能用边界提取器的就用边界替换正则,难度可以大大降低。而且可以从非json格式里取。 

与正则提取器很类似,也可以提取请求或响应中信息:

1、准确写出 左边界和右边界即可,没有正则表达式,简单很多。

2、匹配数字: 跟json提取器一致,0随机,正数表示对应位置,负数表示所有。

可以在查看结果中切换展示,测试一些我们需要的信息

http://www.xdnf.cn/news/955585.html

相关文章:

  • 对云边协同技术的理解
  • Python 协程全解析:async/await、asyncio.run、协程 vs 多线程、I/O 密集首选协程
  • EasyExcel读取csv文件乱码
  • 在 JavaScript中编写 Appium 测试(入门)
  • 【后端】单点登录
  • BI系统帮助企业释放数据价值
  • 技术突破与落地应用:端到端 2.0 时代辅助驾驶TOP10 论文深度拆解系列【第二篇(排名不分先后)】
  • Zabbix 高可用架构部署方案(2最新版)
  • DAY 45 超大力王爱学Python
  • JAVA实战开源项目:经方药食两用服务平台 (Vue+SpringBoot) 附源码
  • day030-Shell自动化编程-函数
  • Ubuntu Linux环境查看服务器资源,查询CPU,内存,环境变量等命令
  • 标注工具核心代码解析——load_image【canvas.py]
  • NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
  • 深度解析:DDoS攻击及其防御策略
  • 【深度解析】以太坊中的挖矿难度调整机制:从动态调节到“冰河时代”的倒计时
  • FOPLP vs CoWoS
  • 二、ROS2完成Docker容器和宿主机通信,使用ros2 topic list看到,但是无法echo
  • 驭码 CodeRider 2.0 产品体验:智能研发的革新之旅
  • OceanBase 桌面版
  • 从零开始了解数据采集(二十八)——制造业数字孪生
  • Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
  • 基于FPGA的PID算法学习———实现P比例控制算法
  • 协同过滤算法进行电影推荐
  • java教程笔记(十三)-synchronized和ReentrantLock
  • Hilt vs Dagger2:Android 依赖注入框架对比
  • 2025年css+html面试题
  • PH热榜 | 2025-06-07
  • 有限自动机到正规文法转换器v1.0
  • 土建施工员考试:建筑施工技术重点知识有哪些?