Jmeter测试接口时,往往需要先执行登录接口,在正常登录后才能继续进行下一步操作,本文主要介绍Jmeter如何保存cookie
cookie在响应数据的响应头中返回的,如图

获取cookie方法一:
添加配置元件——HTTP Cookie 管理器,添加HTTP Cookie 管理器后,Jmeter会自动记录并保存服务端返回的cookie信息,并且在该线程组后面所有请求中自动添加cookie。

如下demo,添加HTTP Cookie管理器后,在登录成功后的下一步新增操作里,请求中会包含cookie

获取cookie方法二:
通过添加后置处理器——正则表达式提取器,来提取响应头中的cookie,需要提取如下demo的cookie,该值在响应头中Response headers

在login请求里添加后置处理器——正则表达式提取器,要检查的响应字段选择“信息头”(因为cookie在响应头中Response headers),引用名称就是参数名称,正则表达式的规则不固定,只要能匹配上就可以。

在“HTTP信息头管理器”添加cookie,如下,这样所有的http请求都会使用这个cookie

跨线程组使用cookie:
由于每个线程组的cookie都是独立的。跨域(跨线程组)的cookie默认是不会自动管理的,这里介绍一下跨线程组cookie的处理方法。
首先打开bin目录下的jmeter.properties文件,修改Jmeter属性”CookieManager.save.cookies=true”
接着将通过正则表达式获取的cookie设置为全局变量,如图,为login添加后置处理器——BeanShell后置处理程序,设置全局cookie:${__setProperty(cookie,${logincookie},)}

__setProperty()函数怎么使用,可通过Tools——函数助手对话框查看

新增一个线程组,在该线程组中使用全局变量

并且在测试计划中勾选“一个组运行结束后启动下一个”选项,这样执行测试计划时,第一个线程组的cookie就可以被第二个线程组使用

网友评论