json串 []表示對象組成的數組,{}表示對象。
對象里包含多個 "屬性":屬性值。屬性值可以是值,或數組,或對象。
JSON Extractor使用json path表達式匹配,可以一次取多個變量值。$表示響應的根對象。取子對象或對象的屬性用. 取數組里的對象用[],數組索引從0開始。
示例:
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變量實際取到了值】
官網: http://jmeter.apache.org/usermanual/component_reference.html#JSON_Extractor
json path :https://goessner.net/articles/JsonPath/
the end!