【jmeter】實現介面關聯的兩種方式:正規表示式提取器和json提取器

羅木木發表於2020-11-04

關聯通俗來講就是把上一次請求的返回內容中的部分擷取出來儲存為引數,用來傳遞給下一個請求使用。

示例:

  1.使用者密碼進行登入,登入後生成authentication

  2.需要將登入介面響應結果中authentication的作為一個引數,傳給下一個介面

  如下圖,需要提取登入介面返回的authentication傳遞給下一個預約訂單列表介面header中

 

一、使用正規表示式提取器實現介面關聯

1.新增方式:在需要獲取資料的請求上(該場景中為登入介面) 右鍵-->後置處理器--> 選擇正規表示式提取器

 引數說明:

  引用名稱:即下一個請求要引用的引數名稱,如填寫authentication,則可用${ authentication}引用它。

  正規表示式:()括起來的部分就是要提取的。.代表任意字元,+表示一次或多次,*代表出現任意次。(具體正規表示式規則可百度)

  模板:用$$引用起來,如果在正規表示式中有多個正規表示式,則可以是$2$,$3$等等,表示解析到的第幾個值給authentication。本處只有1個,所有使用$1$。

  匹配數字:0代表隨機,-1代表所有,其餘正整數代表將在檢查的內容中,第幾個匹配的內容提取出來。

 

2.在後面的介面中使用${authentication}引用

 

二、使用json提取器實現介面關聯

  使用場合:介面關聯,當前一個介面返回的資料型別為json格式的資料,需要從返回的json資料中提取資料。

 

1.新增方式:在需要獲取資料的請求上(該場景中為登入介面) 右鍵-->後置處理器--> 選擇JSON提取器

 

 引數說明: 

  Name of created varialies:即下一個請求要引用的引數名稱,如填寫authentication,則可用${ authentication}引用它。

  JSON Path  expressions:填寫jsonpath,格式:$. 節點名稱   根節點用 “.” 表示

  Match Numbers:0代表隨機,-1代表所有,其餘正整數代表將在檢查的內容中,第幾個匹配的內容提取出來。

  Default Values:找不到時預設值,一般設定為NOT FOUND

  Compute concatenation var(suffix_ALL):是否統計所有,即將匹配到的所有值儲存,名為“變數名_ALL”

2.替換變數為${ 變數名}

三、返回複雜json資料的提取

例如獲取陣列型別的資料:第二個item中第一個hospTags中name值,可以先在察看結果樹種選擇Json Path Tester檢視返回的相應資料,Json Path Expression輸入需要通過jsonpath方式獲取的值點選Test檢查結果是否正確

 

新增方式:右鍵-->後置處理器--> 選擇JSON提取器

 

相關文章