在做接口测试的时候遇到一种场景,请求查询接口的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中的信息成功。