在做接口自動化時,會有需要上層接口返回的數據進行驗證斷言,下層接口使用,這是需要用來提取參數
按照普通方法直接去遍歷返回結構 根據結構樣式去遍歷出需要的字段名,在取出字段名對應的參數,這個方式需要的書寫的比較長,
下面介紹一款提取參數的方法 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
這是運行后的打印出來的返回值,這樣在其他地方就可以根據自身業務或者個人習慣進行賦值調用。