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
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
python发腾讯微博代码分享
WEB2.0网页制作标准教程(10)自适应高度
用pip给python安装matplotlib库的详细教程
![](https://img.aspxhome.com/file/2023/4/97254_0s.jpg)
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
增加 javascript 的 trim 函数
Jupyter加载文件的实现方法
![](https://img.aspxhome.com/file/2023/8/85058_0s.jpg)
python logging模块的使用详解
![](https://img.aspxhome.com/file/2023/5/68495_0s.png)
python 实现的车牌识别项目
![](https://img.aspxhome.com/file/2023/5/85155_0s.png)
Django 解决开发自定义抛出异常的问题
轻松解决Mysql“信息包过大”的处理方法
AJAX简单应用实例-弹出层
在CentOS7下安装Python3教程解析
![](https://img.aspxhome.com/file/2023/9/131539_0s.png)
基于Python实现英语单词小游戏
![](https://img.aspxhome.com/file/2023/2/87602_0s.png)
python3.3实现乘法表示例
![](https://img.aspxhome.com/file/2023/6/120886_0s.jpg)
Python自动化办公之Excel拆分与自动发邮件
![](https://img.aspxhome.com/file/2023/4/93464_0s.png)
Access的特点及其概念问答
用python实现的可以拷贝或剪切一个文件列表中的所有文件
pyenv与virtualenv安装实现python多版本多项目管理
![](https://img.aspxhome.com/file/2023/8/112108_0s.png)
如何通过python画loss曲线的方法
![](https://img.aspxhome.com/file/2023/8/87648_0s.png)