一、JSON提取器介紹
JSON提取器是JMETER工具中用于從JSON響應中提取數據的重要組件,常常用于接口關聯場景中(參數傳遞)。
二、添加JSON提取器
舉例(積分支付接口請求數據依賴于創建訂單接口響應的payOrderId)
1.在需要提取數據的HTTP請求上,右鍵 → 添加 → 后置處理器 → JSON提取器
2.配置JSON提取器參數:
默認選擇Main sample only
變量名稱:存儲提取值的變量名(我這里是payOrderId)
JSON路徑表達式:$.data.payOrderId
(我這里之所以這樣寫,是因為需要參考創建訂單接口響應數據中的json格式)
#創建訂單接口響應數據的json格式
{
? ? "msg": "",
? ? "code": 0,
? ? "data": {
? ? ? ? "payOrderId": 914,
? ? ? ? "id": 688
? ? }
}
匹配數字:0表示隨機,1表示第一個,-1表示所有
三、常用JSONPath表達式示例
1.提取單個值:
$.data.payOrderId --- 提取根節點下data對象中的payOrderId
$.items[0].id --- 提取items數組中第一個元素的id
2.提取多個值:
$.items[*].id --- 提取items數組中所有元素的id
$..name --- 遞歸查找所有name字段
四、使用提取的值
1.在后續請求中通過${變量名}引用
2.驗證是否提取成功
在積分支付接口的請求體數據中成功拿到了創建訂單接口返回的payOrderId值
在積分支付接口的響應數據中查看數據
{
? ? "msg": "",
? ? "code": 0,
? ? "data": {
? ? ? ? "displayContent": null,
? ? ? ? "displayMode": null,
? ? ? ? "status": 10
? ? }
}
五、注意事項
1.JSONPath表達式區分大小寫
2.變量作用域為當前線程組
3.對于復雜JSON結構,建議先用在線JSONPath測試工具驗證表達式
4.考慮添加響應斷言確保接口返回了預期的JSON結構