我們在用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的其它用法,有待各位繼續取研究~
你還在為找不到可練習的接口而煩惱嗎?現在加入龍淵閣,手把手教你搭建屬於自己的接口測試環境!
