(資料圖片僅供參考)
一、使用場景
json提取器用于提取請求返回結果中的某個值或者某一組值,存儲為指定的變量,用于后續(xù)的接口調用,使用方法比正則表達式提取器簡單,所以如果接口響應數據為json格式的,我們優(yōu)先使用json提取器。
二、使用方法
1、添加json提取器
取樣器右鍵 > 添加 > 后置處理器 > json 提取器
2、參數說明
Variable names:保存的變量名,后面使用${Variable names}引用JSON Path expressions:調試通過的json path表達式Match Numbers:匹配數字(0代表隨機,1代表第一個,-1代表所有)Compute concatenation var(suffix_ALL):是否統計所有,即將匹配到的所有值保存,名為“變量名_ALL”Default Values:找不到時默認值時返回什么
3、表達式寫法
3.1 絕對路徑提取
$.節(jié)點名稱.二級節(jié)點名稱.三級節(jié)點
3.2 相對路徑提取
相對路徑提?。?..末梢節(jié)點名稱
注:如果遇到key的value值為一個List,則使用.key[n]獲取下標為n的元素,其中n為list中元素的編號(下標從0開始計算),例如 $..lists[2].typeDesc 表示從返回數據的lists中取下標為2的數據,然后再取typeDesc 對應的值。
3.3 表達式驗證
添加查看結果樹,運行接口請求,查看結果樹中找到需要提取的接口返回,上邊選擇JSON Path Tester,右側會出現表達式的輸入框,輸入自己寫好的表達式,點擊test,看是否取到你想要的數據,取到則說明表達式正確,否則需要優(yōu)化表達式。
4、一次提取多個字段
多個變量名,中間用“;”號隔開提取表達式與變量名一一對應,中間用“;”號隔開多個取值規(guī)則,中間用“;”號隔開缺省值必須要填,一一對應,中間用“;”號隔開匹配到的多個值,會自動命名為 key_1,key_2,...,key_n,后續(xù)可以直接調用如果勾選了Compute concatenation var(suffix_ALL),會把所有匹配到的數據放在key_ALL這個字段中,也可以作為變量直接調用會自動生成一個變量key_matchNr,標識匹配到的數據數量