天天看點

Jmeter(三十三)_JsonPath表達式提取響應

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

  一個簡單的例子:

Jmeter(三十三)_JsonPath表達式提取響應

$..Name:列出所有省份

Jmeter(三十三)_JsonPath表達式提取響應

$..Province[0].Name 提取Province中第一個list中的Name

Jmeter(三十三)_JsonPath表達式提取響應

$..[?(@.Name=='Beijing')] 篩選出省份名為Beijing的所有list資料

Jmeter(三十三)_JsonPath表達式提取響應

 $.Province[:2].population 篩選前兩條資料 

Jmeter(三十三)_JsonPath表達式提取響應

注意:$.Province[:2].population 是篩選出前兩條資料 ;$.Province[2].population 是排除前兩條資料;$.Province[-2].population是排除後兩條資料,千萬别弄混了哦~

  下面列舉一個複雜的例子:

Jmeter(三十三)_JsonPath表達式提取響應

 這是一個多層嵌套的jsonlist,需要提取所有cabinInfos清單下,patFlag=Y時的cabin,standardPrice和finallyPrice。是不是聽起來就很複雜?如果按照傳統的正規表達式提取,那麼   很難滿足這裡的需求了。是以就需要用到jsonpath表達式。

$..[?(@.patFlag=="Y")].["cabin","standardPrice","finallyPrice"]

Jmeter(三十三)_JsonPath表達式提取響應

提供mock接口,jmeter直接通路即可: https://easy-mock.com/mock/5b88b27476b79510db917603/example/query1

關于jsonpath的其它用法,有待各位繼續取研究~