天天看點

Jmeter之Json表達式關聯

        在Jmeter使用中,通常用的最多的是正規表達式和Xpath表達式,但是現在大多數網站傳回參數都用的Json傳回資料,Json更為直覺,下面介紹利用Json Extractor進行Json表達式關鍵字資訊提取并傳遞變量。

Jmeter之Json表達式關聯

Variable names            : 名稱 

JSONPath Expression :JSON表達式 

Match Numbers           :0代表随機,1代表第1個,-1代表全部

Default Value               :未取到值的時候預設值 

Jsonpath寫法:     

{
	"reason":"查詢成功",
	"result":[
		{
			"id":"1",
			"province":"安徽"
		},
		{
			"id":"2",
			"province":"澳門"
		},
		{
			"id":"3",
			"province":"北京"
		},
		{
			"id":"4",
			"province":"福建"
		},
		{
			"id":"34",
			"province":"重慶"
		}
	],
	"error_code":0
}
           

      $..id:列出所有省份

Jmeter之Json表達式關聯

     $..result[0].province:提取result中第一個list裡面的province

Jmeter之Json表達式關聯

      $..[?(@.province=='北京')]:篩選出province為北京的所有list資料

Jmeter之Json表達式關聯

      $.result[:2].province:篩選前兩條資料

Jmeter之Json表達式關聯

PS:注意觀察中括号裡的符号

$.result[:2].province  是篩選前兩條資料

$.result[2].province   是排除前兩條資料

$.result[-2].province  是排除後兩條資料

總結:

1、冒号在前

      :index  正序取值,取數為index(正數第一條)

      :-index 倒序過濾,取數為index(倒數第一條)

2、沒有冒号

       index 表示順序取index+1的值(取第二條資料)

3、冒号在後

       index: 順序過濾,取數為index(正序過濾第一條資料)

       -index:倒序取值,取數為index(倒序取一條資料)

$..[?(@.id=="63")].["title","tags","imtro"]:比對id=63下title、tags、imtro的資料

Jmeter之Json表達式關聯

注:JSON Extractor使用json path表達式比對,可以一次取多個變量值。$表示響應的根對象。取子對象或對象的屬性用.  取數組裡的對象用[],數組索引從0開始 

1:添加一個JSON Extractor表達式,分号分隔多個參數名;分号分隔多個json表達式;分号分隔多個比對數字;分号分隔多個預設值(必填)

2:所有的個數一定要比對,任一個不比對該請求都不會在提取成功

Jmeter之Json表達式關聯
Jmeter之Json表達式關聯

繼續閱讀