接口自动化两大神器:正则提取器和jsonpath提取器

一、前言

在开展接口测试的过程中,我们会发现很多接口需要依赖前面的接口,需要我们动态从前面的接口返回中提取数据,也就是我们通常说的关联。

关联通俗来讲就是把上一次请求的返回内容中的部分截取出来保存为参数,用来传递给下一个请求使用。

B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibiliB站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click

二、正则表达式提取器元件

正则表达式提取器,见名知意就是使用正则表达式的方法把我们需要提取的内容通配出来。

原理:通过左右二边不变的边界来提取中间变的返回值

接口自动化两大神器:正则提取器和jsonpath提取器_第1张图片

 如上图:需要提取access_token

{"access_token":"31_qz2HtPalsk5Ey1ToWJaZ6Kaojf8y-BhxTHEmuO111m8_Gc_77HRvMuG4ltbd9gHskqi0XAq8phQys9K8awso4iq-VSr0bArrd-zC-nY0Ltudp-HcPZV7y291YjLYoeJBHW2zhB7-lWYzeTsqFKOhAHANSW","expires_in":7200}

步骤1:在需要获得数据的请求“1.获取access_token” 上右击添加一个后置处理器-->正则表达式提取器

接口自动化两大神器:正则提取器和jsonpath提取器_第2张图片

 

引用名称:即下一个请求要引用的参数名称,如填写access_token,则可用${ access_token}引用它。

正则表达式:()括起来的部分就是要提取的。.代表任意字符,+表示一次或多次,*代表出现任意次。

模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$,$3$等等,表示解析到的第几个值给access_token。本处只有1个,所有使用$1$。

匹配数字:0代表随机,-1代表所有,其余正整数代表将在检查的内容中,第几个匹配的内容提取出来。

步骤2:在后面的接口中使用${ access_token}引用

接口自动化两大神器:正则提取器和jsonpath提取器_第3张图片

 

三、使用调试取样器检查是否提取成功

添加调试取样器-->运行测试-->通过查看结果树里面的 调试取样器 查看结果

接口自动化两大神器:正则提取器和jsonpath提取器_第4张图片

 

四、总结

在编写 jmeter脚本的过程中,第一步是单用户单循环,处理好接口关联的问题,保证接口的功能业务正常,所以关联的处理尤其重点。

五、json提取器的使用场合及原理

使用场合:接口关联,并且前一个接口返回的数据类型为json格式的数据,需要从返回中提取出数据。

接口自动化两大神器:正则提取器和jsonpath提取器_第5张图片

 将json返回复制到 www.bejson.com-->json菜单-->json视图-->json数据中,然后点击试图查看,如下图:

接口自动化两大神器:正则提取器和jsonpath提取器_第6张图片

原理:通过jsonpath从json文件中提取出数据。

例如:access_token:在整个json文件中的path是:根节点--> access_token

六、json提取器的使用步骤

步骤1:在需要获得数据的请求“1.获取access_token” 上右击添加一个后置处理器-->JSON提取器

 接口自动化两大神器:正则提取器和jsonpath提取器_第7张图片

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:替换变量为${ 变量名}

接口自动化两大神器:正则提取器和jsonpath提取器_第8张图片

 步骤3:使用 调试取样器 检查是否提取到了

接口自动化两大神器:正则提取器和jsonpath提取器_第9张图片

七、扩展:复杂一点的json文件节点的提取

如图:{"tag":{"id":193,"name":"newdream20200324"}}

接口自动化两大神器:正则提取器和jsonpath提取器_第10张图片

 JSON提取器配置如下: $.tag.name

接口自动化两大神器:正则提取器和jsonpath提取器_第11张图片

 

你可能感兴趣的:(自动化,python,正则表达式,测试工具,经验分享)