在做接口測試的時候遇到一種場景,請求查詢接口的header信息需要從登錄接口返回的cookie信息中提取。那么怎么從cookie中提取信息呢?
方法一:在登錄請求上添加后置處理器——正則表達式提取器,提取登錄接口返回的cookie信息
方法二: 直接用COOKIE Manager自動存儲來提取cookie中的信息
下面我來分別演示上述的兩種方法
一、通過后置處理器-正則表達式提取器來提取信息
1. 添加並設置正則表達處理器
在登錄接口上右鍵,添加-后置處理器-正則表達式處理器,如下圖:

要檢查的字段:勾選“信息頭”
引用名稱:給需要提取的信息起一個變量名
正則表達式:查看登錄接口響應數據中的Response Headers中的cookie信息,確定正則表達式
模板:$1$ 表示后面可以用token_g1來引用提取信息
匹配數字:填0或不填,表示隨機讀取,如果填正整數,如1,則不同虛擬用戶或循環固定讀取某行數據。
2. 引用正則表達提取器提取的信息
注意:這里我舉的例子是將變量用在了HTTP信息頭管理器中,如果變量是在請求參數中設置的,同樣在變量中引用正則表達提取器提取的信息
在查詢接接口上右鍵,添加-配置元件-HTTP信息頭管理器,如下圖。

3. 運行查看結果


由上面數據我們可以看出,信息提取成功。
二、直接用COOKIE Manager自動存儲來提取cookie中的信息
1. 修改CookieManager.save.cookies=true
找到bin文件下的jmeter.properties文件,修改CookieManager.save.cookies=true,如下圖:

2. 添加HTTP Cookie管理器
右鍵,添加-配置元件-HTTP Cookie管理器,用來存儲cookie。存儲cookie的時候,cookie的key會以“COOKIE_”為前綴命名(默認情況是這樣)
3. 引用HTTP Cookie管理器存儲的cookie信息
注意:這里我舉的例子是將變量用在了HTTP信息頭管理器中,如果變量是在請求參數中設置的,同樣在請求參數中引用正則表達提取器提取的信息
右鍵,添加-配置元件-HTTP信息頭管理器, 設置Token的值為COOKIE_加上cookie中需要提取的信息名稱,如下圖。

4. 運行查看結果


對比上面2張圖中的數據,提取cookie中的信息成功。
