摘自http://wangsheng14591.blog.163.com/blog/static/327797102012829101351887/web
ATTENTION:跨域
如今对于JMeter来讲,一个测试计划只能有一个cookie管理器。由于当多个magager存在时,JMeter目前尚未方法来指定使用那个manager。同时,一个cookie manager中的存储的cookie也不能被其余cookie manager所引用,因此同一个计划中不建议使用多个cookie manager
HTTP COOKIE Manager管理cookie有两种方法:浏览器
他能够像浏览器同样存储和发送cookie,若是你要发送一个带cookie的http请求,cookie manager会自动存储该请求的cookies,而且后面若是发送同源站点的http请求时,均可以用这个cookies。每一个JMeter线程都有本身的“cookie存储区域”,cookie
因此当你测试一个使用cookie来管理session信息的web站点时,每一个JMeter线程都有本身的session。session
注意:ide
以这种自动收集的方式收集到的cookie不会在cookie manager中进行展现,可是运行后,经过:查看结果树(监 听器)能够查看到cookie信息。测试
早期的JMeter版本(2.3.2或更早)对与cookie的管理是支持跨域的,也就是说不一样域名的网站均可以使用cookie manager中 的cookie,2.3.2版本以后,这个就不能够了,必须同源,才能共用cookie,若是你想让JMeter的cookie manager支持跨域, 修改JMeter.property :网站
CookieManager.check.cookies=falsespa
接受到的cookie会被自动存储在线程变量中,可是从Jmeter2.3.2版本后,默认再也不存储,若是你想要manager自动存储收集到 的cookie,你须要修改JMeter.property firefox
CookieManager.save.cookies=true
存储的时候,cookie的key会以“COOKIE_”为前缀命名(默认状况),若是你想自定义这个前缀,
修改JMeter.property :
CookieManager.name.prefix=
这个配置若是未启用(也就是维持默认),咱们能够经过一下方式获取到cookie的值:${COOKIE_name},其 中name为cookie的名称
2. 除了上面说的自动收集,咱们还能够手动添加cookie,这里,笔者要给你们一个建议,尽可能不要一个一个手动去填写,咱们可 以结合firefox的插件firebug,直接将cookie导入,操做以下
打开firebug,如图
点击红色框中的,下拉框中有个导出本站点的cookie,就能够将cookie信息保存为一个cookies.txt文件,接着打开jmeter 的cookie manager:
载入刚才导出的cookies.txt文件便可。
各个参数说明:
名称 | 描述 | 是否必填 |
Name | 自定义该cookie的描述,例如:tuan.qq.com的cookie | N |
Clear Cookies each Iteration | 每次线程组运行前,都会清楚cookie,可是若是是手动添加的cookie,不会被清除 | N |
Cookie Policy | 选择cookie的管理策略,建议选择compatibility,兼容性强 | |
User-Defined Cookies | 用户自定义cookie | |
Add Button | 。。。略过 |