我們在用jmeter做接口測試的時候,有的時候會遇到一些複雜的json響應。比如多層list嵌套時的取值
一個簡單的例子:

$..Name:列出所有省份
$..Province[0].Name 提取Province中第一個list中的Name
$..[?(@.Name=='Beijing')] 篩選出省份名為Beijing的所有list資料
$.Province[:2].population 篩選前兩條資料
注意:$.Province[:2].population 是篩選出前兩條資料 ;$.Province[2].population 是排除前兩條資料;$.Province[-2].population是排除後兩條資料,千萬别弄混了哦~
下面列舉一個複雜的例子:
這是一個多層嵌套的jsonlist,需要提取所有cabinInfos清單下,patFlag=Y時的cabin,standardPrice和finallyPrice。是不是聽起來就很複雜?如果按照傳統的正規表達式提取,那麼 很難滿足這裡的需求了。是以就需要用到jsonpath表達式。
$..[?(@.patFlag=="Y")].["cabin","standardPrice","finallyPrice"]
提供mock接口,jmeter直接通路即可: https://easy-mock.com/mock/5b88b27476b79510db917603/example/query1
關于jsonpath的其它用法,有待各位繼續取研究~