VOL 133
10
2020-06
今天距2021年204天
这是ITester软件测试小栈第133次推文
点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 07:30准时推送。
微信公众号后台回复“资源”、“测试工具包”、“简历模板”领取测试资源,回复“21天打卡”一起学习成长,打怪升级。
本文4445字,阅读约需12分钟
上一篇:Jmeter系列之参数化,主要介绍JMeter的三种参数化方式:用户参数、CSV Data Set Config、 CSV函数助手。
以下主要介绍接口依赖的三种处理方式:JSON Extractor、正则表达式、边界提取器(Boundary Extractor)。
在接口自动化中,需要将多个流程串联起来才能将程序整个流程测试通过,会出现后一个接口的请求要用到前面接口的返回值。比如调用商品列表接口请求需要先登录,这时就需要先登录后,获取登录结果中的token,商品列表接口请求时携带token即可。
一
JSON Extractor
1
使用场景
JSON Extractor后置处理器用在返回格式为json的HTTP请求中,用来获取返回的json中的某个值,并保存成变量供后面的请求进行调用或断言等。
2
Json Extractor界面说明
①HTTP请求,右键,依次选择Add--》Post-Processors--》JSON Extractor。
②创建的 JSON Extractor页面如下:
Name:json后置表达式的名称,标识作用,建议使用有意义的名字;
Names of created variables:保存的变量名,后面使用${Variable names}引用;
JSON Path expressions:json path表达式;
Match No:匹配数字(0代表随机,1代表第一个,-1代表所有);
Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值都保存,名为“变量名_ALL”,使用场景需要获取的值有多个,后面需要对这一组数据进行操作;
Default Values:找不到时默认值,比如设置为null。
JsonPath语法:
JsonPath | 说明 |
$ |
文档根元素 |
@ |
当前元素 |
. 或[] |
匹配下级元素 |
.. |
递归匹配所有子元素 |
* |
通配符,匹配下级元素 |
[] |
下标运算符,根据索引获取元素,JsonPath索引从0开始 |
[,] |
连接操作符,将多个结果拼接成数组返回,可以使用索引或别名 |
[start:end:step] |
数据切片操作 |
?() |
过滤表达式 |
以上的语法规范,细心的小伙伴可能会发现语法中 ..
表示递归匹配所有子元素,简单粗暴,用..
获取所有匹配的子元素,通过索引拿到想要的