在Jmeter使用中,通常用的最多的是正規表達式和Xpath表達式,但是現在大多數網站傳回參數都用的Json傳回資料,Json更為直覺,下面介紹利用Json Extractor進行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:列出所有省份
$..result[0].province:提取result中第一個list裡面的province
$..[?(@.province=='北京')]:篩選出province為北京的所有list資料
$.result[:2].province:篩選前兩條資料
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的資料
注:JSON Extractor使用json path表達式比對,可以一次取多個變量值。$表示響應的根對象。取子對象或對象的屬性用. 取數組裡的對象用[],數組索引從0開始
1:添加一個JSON Extractor表達式,分号分隔多個參數名;分号分隔多個json表達式;分号分隔多個比對數字;分号分隔多個預設值(必填)
2:所有的個數一定要比對,任一個不比對該請求都不會在提取成功