后置處理器--jp@gc - JSON/YAML Path Extractor
1.需要下載插件,地址:
解壓后把對應jar包放置對應的lib和lib/ext目錄下,重啟Jmeter;
2.在需要提取的請求添加一個:jp@gc - JSON/YAML Path Extractor

2.填寫Json path txtractor
如果不知道結果是否正確,可以在需要提取的響應結果選擇:Json path tester ,輸入表達式,能查詢出對應的結果:

備注:
Json中的data是一個對象數組, data[0] 代表取的是第一個對象數組,data[*]代表取全部
$.data[0].id 代表取的是ID的值,
后置處理器JSON Extractor 提取json的多個值(轉)
示例:
1 找一個響應結果是json格式的,分析響應結果。
比如下面的響應整個是個數組,其中有4個對象。因此取值用$[索引取0-3或*取所有].屬性值
如果響應類似{"屬性":[{"sx":1},{},{}]},整個響應是個對象。取sx的值:$.屬性[0].sx

2 jmeter添加步驟1分析的請求,並在該請求上點右鍵添加post processors 》 JSON Extractor

1 分號分隔多個參數名,json path表達式,匹配第幾個,默認值 【分隔符必須是分號】
2 所有的個數一定要匹配 【試過了除了matchno(有默認值0),其他三個任一個不匹配該請求都沒在結果樹顯示】
names of created variables :接收值的變量名
json path: json path表達式
match no:0隨機;n取第幾個匹配值;-1匹配所有,后續引用用 變量名_N 取第N個值。
default values: 缺省值,匹配不到值的時候取該值

3 新建一個http請求獲取參數值

4 添加結果樹,運行,查看結果。

5 修改json extractor 獲取數組的所有值 $[*].屬性。match no=3取第3個。


6 match no=5,數組越界后,取default values


7 修改json extractor 設置match no =-1 匹配所有值;並修改接收參數的http請求的參數為 ${varname_N}。N=1-4.



8 修改json extractor, ${varname_N}的N越界之后取不到參數 【不會取json extractor里設定的默認值,因為N,P,F,D變量實際取到了值】


原文:
https://www.cnblogs.com/dinghanhua/p/9823305.html
