在做接口测试的时候遇到一种场景,请求查询接口的header信息需要从登录接口返回的cookie信息中提取。那么怎么从cookie中提取信息呢?

方法一:在登录请求上添加后置处理器——正则表达式提取器,提取登录接口返回的cookie信息

方法二: 直接用COOKIE Manager自动存储来提取cookie中的信息

 

下面我来分别演示上述的两种方法

一、通过后置处理器-正则表达式提取器来提取信息

1. 添加并设置正则表达处理器

在登录接口上右键,添加-后置处理器-正则表达式处理器,如下图:

Cookie的获取Java 如何获取cookie中的值_正则表达式

要检查的字段:勾选“信息头”

引用名称:给需要提取的信息起一个变量名

正则表达式:查看登录接口响应数据中的Response Headers中的cookie信息,确定正则表达式

模板:$1$ 表示后面可以用token_g1来引用提取信息

匹配数字:填0或不填,表示随机读取,如果填正整数,如1,则不同虚拟用户或循环固定读取某行数据。

 

2. 引用正则表达提取器提取的信息

注意:这里我举的例子是将变量用在了HTTP信息头管理器中,如果变量是在请求参数中设置的,同样在变量中引用正则表达提取器提取的信息

在查询接接口上右键,添加-配置元件-HTTP信息头管理器,如下图。

Cookie的获取Java 如何获取cookie中的值_HTTP_02

 

3. 运行查看结果

Cookie的获取Java 如何获取cookie中的值_Cookie的获取Java_03

Cookie的获取Java 如何获取cookie中的值_Cookie的获取Java_04

由上面数据我们可以看出,信息提取成功。


二、直接用COOKIE Manager自动存储来提取cookie中的信息

1. 修改CookieManager.save.cookies=true

找到bin文件下的jmeter.properties文件,修改CookieManager.save.cookies=true,如下图:

Cookie的获取Java 如何获取cookie中的值_正则表达式_05

 

2. 添加HTTP Cookie管理器

右键,添加-配置元件-HTTP Cookie管理器,用来存储cookie。存储cookie的时候,cookie的key会以“COOKIE_”为前缀命名(默认情况是这样)

 

3. 引用HTTP Cookie管理器存储的cookie信息

注意:这里我举的例子是将变量用在了HTTP信息头管理器中,如果变量是在请求参数中设置的,同样在请求参数中引用正则表达提取器提取的信息

右键,添加-配置元件-HTTP信息头管理器, 设置Token的值为COOKIE_加上cookie中需要提取的信息名称,如下图。

Cookie的获取Java 如何获取cookie中的值_HTTP_06

 

4. 运行查看结果

Cookie的获取Java 如何获取cookie中的值_右键_07

Cookie的获取Java 如何获取cookie中的值_正则表达式_08

对比上面2张图中的数据,提取cookie中的信息成功。