jmeter实现接口关联的两种方式(正则表达式提取器和json提取器)
作者:测试逍遥子 发布时间:2022-06-14 19:31:27
一、前言
在开展接口测试或者是接口面试的过程中,我们会发现很多接口需要依赖前面的接口,需要我们动态从前面的接口返回中提取数据,也就是我们通常说的关联。
关联通俗来讲就是把上一次请求的返回内容中的部分截取出来保存为参数,用来传递给下一个请求使用。
二、使用正则表达式提取器实现接口关联
正则表达式提取器,见名知意就是使用正则表达式的方法把我们需要提取的内容通配出来。
原理:通过左右二边不变的边界来提取中间变的返回值
如上图:需要提取access_token
{"access_token":"31_qz2HtPalsk5Ey1ToWJaZ6Kaojf8y-BhxTHEmuO111m8_Gc_77HRvMuG4ltbd9gHskqi0XAq8phQys9K8awso4iq-VSr0bArrd-zC-nY0Ltudp-HcPZV7y291YjLYoeJBHW2zhB7-lWYzeTsqFKOhAHANSW","expires_in":7200}
1、在需要获得数据的请求“1.获取access_token” 上右击添加一个后置处理器-->正则表达式提取器
引用名称:即下一个请求要引用的参数名称,如填写access_token,则可用${ access_token}引用它。
正则表达式:()括起来的部分就是要提取的。.代表任意字符,+表示一次或多次,*代表出现任意次。
模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$,$3$等等,表示解析到的第几个值给access_token。本处只有1个,所有使用$1$。
匹配数字:0代表随机,-1代表所有,其余正整数代表将在检查的内容中,第几个匹配的内容提取出来。
2.在后面的接口中使用${ access_token}引用
3.使用调试取样器检查是否提取成功
添加调试取样器-->运行测试-->通过查看结果树里面的 调试取样器 查看结果
如果你觉得此文对你有帮助,如果你对此文有任何疑问,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入软件测试技术群:695458161,群里发放的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。
三、使用json提取器实现接口关联
使用场合:接口关联,当前一个接口返回的数据类型为json格式的数据,需要从返回的json数据中提取数据。
可以将返回的值复制到 www.bejson.com-->json菜单-->json视图-->json数据中,然后点击试图查看,如下图:
json提取器的使用步骤
1.在需要获得数据的请求“1.获取access_token” 上右击添加一个后置处理器-->JSON提取器
Name of created varialies:即下一个请求要引用的参数名称,如填写access_token,则可用${ access_token}引用它。
JSON Path expressions:填写jsonpath,格式:$. 节点名称 根节点用 “.” 表示
Match Numbers:0代表随机,-1代表所有,其余正整数代表将在检查的内容中,第几个匹配的内容提取出来。
Default Values:找不到时默认值,一般设置为NOT FOUND
Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”
2.替换变量为${ 变量名}
3.使用 调试取样器 检查是否提取到了
四、扩展:返回复杂json数据的提取
如图:{"tag":{"id":193,"name":"newdream20200324"}}
JSON提取器配置如下: $.tag.name
来源:https://blog.csdn.net/pengjiangchun/article/details/105380333


猜你喜欢
- Python既具有普通程序开发语言的特点,也具有Matlab语言用于数值计算的特点,,当然了数值计算是由其其强大的第三方库numpy实现的,
- 用比较笨的方法来做abc ="AlkjA;lkjlkjAlkAkjAlkjAAAA" if instr(abc,&quo
- 在使用SQL Server 的过程,中由于经常需要从多个不同地点将数据集中起来或向多个地点复制数据,所以数据的导出,导入是极为常见的操作.我
- 本文实例讲述了Python计算字符宽度的方法。分享给大家供大家参考,具体如下:最近在用python写一个CLI小程序,其中涉及到计算字符宽度
- 一个不错的文字放大特性源码。效果图:运行代码框<script for=document event=onmousemove>//
- 钱包基础概念广义上,钱包是一个应用程序,为用户提供交互界面。钱包控制用户访问权限、管理比特比地址及秘钥、跟踪余额、创建交易和签名交易狭义上,
- CSS重设就是由于各种浏览器解释CSS样式的初始值有所不同,导致设计师在没有定义某个CSS属性时,不同的浏览器会按照自己的默认值来为没有定义
- '****'函数名称: strReplace(Str)'函数功能: 过滤单引号'参数说明: Str 
- 属性 值 描述 onchange 脚本 当元素改变时执行脚本 onsubmit 脚本 当表单被提交时执行脚本 onreset 脚本 当表单被
- 目录一、变量、常量的区别二、变量1. Python中的变量不需要声明类型2. 用“=”号来给变量赋值3. 赋值4. 变量5. “=”6. P
- 使用picasa的时候,注意到它首先是显示模糊的图片,然后图片突然变得清晰,这样做有一定的好处——picasa的图片翻页是用javascri
- 本文实例为大家分享了PyQt5实现画布小程序的具体代码,供大家参考,具体内容如下实现的效果图如下:该实例中,涉及到的知识点有:1.PyQt5
- function BindSelect(id,dataList,fieldtext,fieldValue) { //绑定某一个数据源,fie
- 玩QQ桌球游戏时,有时候用鼠标控制鼠标指针的微小移动比较费劲儿,所以想写个程序,可以用键盘的上下左右键来控制鼠标的移动,每次只移动一个像素。
- 解决项目pycharm能运行,在终端却无法运行的问题报 ModuleNotFoundError: No module named '
- 万众瞩目的 Firefox 3 从昨天开始可以下载了,用“铺天盖地”四个字来形容她的宣传一点都不为过。大多数的广告还是她的fans自发进行的
- 1、python教程基于 python3.10 的持续解读,旨在快速回忆加深理解,节约自己的时间成本1.1 概述python 是一门易于学习
- 继上篇博客Python实现简易通讯录后,我就想写一个复杂点的学生信息管理系统,这次实现的功能有1.学生信息的录入管理;2.学生选课操作;3.
- 大家好,今天我在学习 MySQL 8.0.22安装及配置遇到了一些问题,特地将我整个安装过程分享出来希望可以帮助不会安装的小伙伴😜。参考链接
- 本文为大家分享了SQL Server 2008R2简单使用教程,供大家参考,具体内容如下1 首先找到开始菜单中相关内容;如下图;安装的组件不