場景使用
json extractor后置處理器用在返回格式為json的HTTP請求中,用來獲取返回的json中的某個值。並保存成變量供后面的請求進行調用或斷言等。
使用方法
1.常規操作
路徑:選擇HTTP請求>添加>后置處理器>JSON Extractor,如下圖所示:

要獲取接口返回的數據,json格式如下:

獲取該參數的方式有兩種,表達式不同而已
方式一:

通過Debug Sampler在查看結果樹中查看是否有獲取成功值,如下:

方式二:

通過Debug Sampler在查看結果樹中查看是否有獲取成功值,如下:

先實踐操作了一波,可能還不知道這個元件上的參數如何設置,介紹如下:
Variable names(名稱):提取器的名稱
Apply to(應用范圍):
Main sample and sub-samples:應用於主sample及子sample
Main sample only:默認的是這個,應用於主sample
Sub-samples only:應用於子sample
JMeter Variable :應用於變量命名的內容
Variable names:保存的變量名,后面使用${Variable names}引用
JSON Path expressions:上一步中調試通過的json path表達式
Match Numbers:匹配數字(0代表隨機,1代表第一個,-1代表所有)
Default Values:找不到時默認值,一般設置為NOT FOUND
Compute concatenation var(suffix_ALL):是否統計所有,即將匹配到的所有值保存,名為“變量名_ALL”,使用場景需要獲取的值有多個,后面需要對這一組數據進行操作
注意點:
當json提取器要提取兩個值(或兩個以上)的時候,一定要填寫默認值,不然會報錯“Mismatch between number of variables, json expressions and default values” ;反之:只提取兩個值,默認值填了三個,也會報該錯
JSON Path expressions中的參數詳細如下:
| JsonPath |
描述 |
| $ |
根節點 |
| @ |
當前節點 |
| .or[] |
子節點 |
| .. |
選擇所有符合條件的節點 |
| * |
所有節點 |
| [] |
迭代器標示,如數組下標 |
| [,] |
支持迭代器中做多選 |
| [start:end:step] |
數組切片運算符 |
| ?() |
支持過濾操作 |
| () |
支持表達式計算 |
2.查看結果樹中操作
在查看結果樹中設置如下,選擇JSON Path Tester

在JSON Path expressions輸入框中輸入$.[0].carouselOID,並點擊Test,可以調試JSON參數是否獲取成功,如下圖所示:

下方顯示出調試結果,這樣就可以把該表達式寫入到JSON提取器中,提高調試效率。
最后來兩個很普通的參數提示示例:
JSON格式如下:

JSON提取器設置如下:

JSON格式如下:

JSON提取器設置如下:

記錄點滴,只為更好的成長,加油!
