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


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!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM