接口測試中,經常會遇到,某個請求的參數需要從上一個接口的返回數據中提取,那么這時候我們就需要用到j提取器了。最常見的是json提取器,下面就來介紹下json提取器的常見使用方法。
一、首先我們來了解下,json提取器各個參數的意義
Apply to:應用范圍。一般使用默認的即可
Names of created variables :變量名稱,提供給其它控件引用。這個自定義,多個參數用分號隔開。匹配到單個值可直接引用,如${id};若是匹配到多個值,需要使用第n個值時則帶上下坐標,如第3個為 ${id_3}
JSON Path expression:從json響應中提取內容的表達式,其中$代表根元素,.id表示從根元素往下找到id,匹配所有值用 [*],如$.[*].id,匹配第n個值用? ? ?$.[n].id
Match No.(0 for Random):0代表隨機選擇一個,-1代表提取所有值,n表示提取匹配的第n個值,如“1”表示提取匹配到的第1個值
Compute concatenation var(suffix_ALL):創建一個${foo_ALL}包含所有提取值的串聯的變量,即將提取的值組成一個list返回
Default Values:缺省值,匹配不到值時使用該值,也可以寫error
二、下面我們來結合實際業務場景來提取參數,可根據實際業務需要進行變換
1,匹配單個值
業務場景:登錄后提取accessToken(即下圖中的id),當做后面的請求的參數,返回和提取方式如下
注:因為這里只返回了一個id,所以表達式使用$.id,下面的Match No.(0 for Random) 為空即可
2,匹配所有的值,隨機提取/指定提取
業務場景:匹配返回體中所有的“id”,0代表隨機提取一個,需要指定提取第n個,將0改為n即可
這里指定提取還有另一種寫法:$.[n].id
3,匹配多個參數
業務場景:匹配返回體中所有的“tpye”和“id”,添加一個Debug PostProcessor,可查看提取的結果。
使用:使用id和type的第n個值,${element_n} 、${tpye_n},使用返回值數量:${elementId_matchNr}