1. 程式人生 > >Jmeter入門13 後置處理器JSON Extractor提取json的多個值

Jmeter入門13 後置處理器JSON Extractor提取json的多個值

soft 缺省 mic nbsp 分隔符 處理器 獲取 索引 get

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!

Jmeter入門13 後置處理器JSON Extractor提取json的多個值