JMeter-一個介面的返回值作為輸入傳給其他介面

別打雷發表於2020-07-14

背景:

在用JMeter寫介面case,遇到一種情況,介面1檢視列表介面,介面2檢視詳情介面,介面2需要傳入介面1列表的第一條資料的id

因為這個id後面我可能會改變,所以也不適合作為全域性變數來設定

解決方案:

首先放一下總體截圖

 

 

 具體步驟

1-新建一個Thread Group即執行緒組,在該執行緒組下面新增介面1的HTTPrequest,填寫路徑方法和引數等(選擇執行緒組右鍵-add-HTTPrequest)

 

2-選擇介面1的HTTPrequest ,右鍵新建一個正規表示式提取器,即上圖中的“提取id”

 

 3-在結果樹觀察列表介面的返回值,確認正規表示式 "content":\[\{"id":"(.+?)"能夠獲取到第一個id,關於正規表示式語法可參考菜鳥教程

 

 4-將正規表示式和id補充到提取器的正規表示式內,注意要勾選驗證區域!否則會搜不到,我們這裡是檢視返回值,選擇了Body

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

模板:用$*$引用起來,表示解析到的第幾個值,如:$1$表示解析到的第1個值

匹配數字:0代表隨機取值,1代表第一個,-1代表每一個

 

 5-線上程組下,新建一個 Debug Sampler(新建路徑:右鍵新執行緒組 - 新增 - Sampler - Debug Sampler),方便檢視所提取的環境變數值是否正確

 

 6-在當前執行緒組下新建一個介面2的HTTPrequest,寫清路徑方法等,傳參的id 寫${id}

注意!!兩個介面必須在一個執行緒組下面,否則會獲取不到提取值。

當然依賴介面1資料的介面2在順序上,也應該在下面,JMeter的介面執行時按序執行的

 

 7-檢視結果樹

 

相關文章