jsonpath 提取参数
在做接口自动化时,会有需要上层接口返回的数据进行验证断言,下层接口使用,这是需要用来提取参数
按照普通方法直接去遍历返回结构 根据结构样式去遍历出需要的字段名,在取出字段名对应的参数,这个方式需要的书写的比较长,
下面介绍一款提取参数的方法 JsonPath
JsonPath | 结果 |
---|---|
$.store.book[*].author |
获取json中store下book下的所有author值 |
$..author |
获取所有json中所有author的值 |
$.store.* |
所有的东西,书籍和自行车 |
$.store..price |
获取json中store下所有price的值 |
$..book[2] |
获取json中book数组的第3个值 |
$..book[-2] |
倒数的第二本书 |
$..book[0,1] |
前两本书 |
$..book[:2] |
从索引0(包括)到索引2(排除)的所有图书 |
$..book[1:2] |
从索引1(包括)到索引2(排除)的所有图书 |
$..book[-2:] |
获取json中book数组的最后两个值 |
$..book[2:] |
获取json中book数组的第3个到最后一个的区间值 |
$..book[?(@.isbn)] |
获取json中book数组中包含isbn的所有值 |
$.store.book[?(@.price < 10)] |
获取json中book数组中price<10的所有值 |
$..book[?(@.price <= $['expensive'])] |
获取json中book数组中price<=expensive的所有值 |
$..book[?(@.author =~ /.*REES/i)] |
获取json中book数组中的作者以REES结尾的所有值(REES不区分大小写) |
$..* |
逐层列出json中的所有值,层级由外到内 |
$..book.length() |
获取json中book数组的长度 |
首先 pip install jsonpath
安装成功后,在.py文件中 import导入jsonpath
这是一个demo,提取返回的json体中的level列表中第二个字典的中levelNum
这是运行后的打印出来的返回值,这样在其他地方就可以根据自身业务或者个人习惯进行赋值调用。