当前位置: 首页 > 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随机,正数表示对应位置,负数表示所有。

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

相关文章:

  • 【Kubernetes】Ingress-nginx快速入门
  • “概率鹦鹉”难解语义等价验证的NPC难题: 从技术本质看LLM在SQL优化任务中的致命缺陷
  • 【Java多线程从青铜到王者】单例设计模式(八)
  • TMC2226超静音步进电机驱动控制模块
  • ConcurrentModificationException 并发修改异常详解
  • 深度学习-1.神经网络理解
  • 博图 SCL 编程技巧:灵活实现上升沿与下降沿检测案例分享(下)
  • LangChain4j(18)——通过Xinference调用Rerank模型
  • 【前端实战】如何让用户回到上次阅读的位置?
  • 【C++】IO库 IO流
  • 禁用思科锐捷设备分页功能
  • redis--黑马点评--Redisson快速入门
  • pytorch卷积层权重之 二维互相关运算(corr2d) (亲测,已解决)
  • 神经网络学习-神经网络简介【Transformer、pytorch、Attention介绍与区别】
  • pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
  • 网页后端开发(基础1--maven)
  • 初探用uniapp写微信小程序遇到的问题及解决(vue3+ts)
  • 如何在 PyTorch 中自定义卷积核参数(亲测,已解决)
  • [免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
  • 设计模式-抽象工厂模式
  • 上每网站建设/国外seo网站
  • 90后做网站/百度官方网站网址是多少
  • 常设中国建设工程法律论坛网站/广告服务平台
  • java做的网站怎么设置关闭和开启网站访问不了怎么办/昆山网站建设
  • 个人做分类信息网站/360安全浏览器
  • 纹身网站建设/微营销平台有哪些