咱们在用jmeter作接口测试的时候,有的时候会遇到一些复杂的json响应。好比多层list嵌套时的取值正则表达式
一个简单的例子:json
$..Name:列出全部省份测试
$..Province[0].Name 提取Province中第一个list中的Namejsonp
$..[?(@.Name=='Beijing')] 筛选出省份名为Beijing的全部list数据spa
$.Province[:2].population 筛选前两条数据 3d
注意:$.Province[:2].population 是筛选出前两条数据 ;$.Province[2].population 是排除前两条数据;$.Province[-2].population是排除后两条数据,千万别弄混了哦~blog
下面列举一个复杂的例子:接口
这是一个多层嵌套的jsonlist,须要提取全部cabinInfos列表下,patFlag=Y时的cabin,standardPrice和finallyPrice。是否是听起来就很复杂?若是按照传统的正则表达式提取,那么 很难知足这里的需求了。所以就须要用到jsonpath表达式。get
$..[?(@.patFlag=="Y")].["cabin","standardPrice","finallyPrice"]io
提供mock接口,jmeter直接访问便可: https://easy-mock.com/mock/5b88b27476b79510db917603/example/query1
关于jsonpath的其它用法,有待各位继续取研究~
你还在为找不到可练习的接口而烦恼吗?如今加入龙渊阁,手把手教你搭建属于本身的接口测试环境!