背景
在平時做接口測試的時候,經(jīng)常會遇到上一個接口的response中的某一個元素,是下一個接口的參數(shù)。
如:
- 新增一個訂單,返回一定訂單ID,下一個接口對這個訂單進行修改,需要傳入上一個訂單的ID
- 登陸接口返回的一個值str,需要在后續(xù)的接口中作為參數(shù)傳入
等等,場景大同小異。
概括起來就是參數(shù)的傳遞。
這種平時我們寫腳本,寫代碼相對比較容易實現(xiàn),可是如果在Jmeter中應(yīng)該怎么解決呢?
后置處理器
整體思路和我們寫代碼差不多,即:
- 1.找到這個參數(shù)
- 2.把它賦值給一個變量a
- 3.后續(xù)接口需要用到,傳入這個變量a
簡單的實踐
如目前我們一個接口,返回內(nèi)容如下:

需求:把code和msg提取出來,傳給下一個接口使用
Regular Expression Extrator
這邊可以用Jmeter 的Regular Expression Extractor 來解決
在這個http request 請求后,掛在一個Regular Expression Extractor,其打開后頁面如下:

field to check: 需要你自己選定是對response的內(nèi)容還是頭,還是url進行抓取。
Name of created variable: 抓取出來的變量名稱,這邊自行命名
Regular expression: 這個是最重要的?。。≌齽t表達式就寫在這里。 正則表達式的正確與否,是你抓取的關(guān)鍵,如果正則寫錯了,參數(shù)就無法抓取出來了。
這邊可以加上Debug Sampler,打印抓取的參數(shù),以便修改正則
Template: 提取正則表達式里面的內(nèi)容,通常我們只提取一個字串,所以通常都是。
Match No: 匹配的數(shù)字, 通常我們只提取一個字串,一般寫1。
Default Value: 缺省值或默認值,用于沒有抓取到值時的處理。
這樣通過 ${var}的方式,把變量寫入request里面
如上所示,這樣就把status給提起出來

點擊 view result tree中的結(jié)果,點擊Debug Sampler可以看到我們抓取的數(shù)字是否正確
JSON Extrator
類似還有 Json Extrator,整體接口和上面相似,提取的部分換成了JSONPath的語法,相對可能更加簡單一點
如圖,這邊我提取msg的內(nèi)容

下面我把上面提取的兩個參數(shù),同時傳遞給百度


從結(jié)果數(shù)中可以看出,兩個參數(shù) waiqin_status和waiqin_msg均傳遞成功。