Jmeter系列(49)- 详解 HTTP Cookie 管理器

简单介绍

功能一

  • 首先,它像网络浏览器一样存储和发送 cookie
  • 如果有一个HTTP请求,并且响应包含 cookie,则 cookie 管理器会自动存储该 cookie,并将其用于后面对该特定网站的所有请求
  • cookie 管理自动存储的 cookie 不会出现在 Cookie Manager 的界面上,但是可以使用通过查看结果树看到它

功能二

  • JMeter 会检查收到的 Cookie 是否对该URL有效,这意味着不会存储跨域 Cookie
  • 如果有错误的行为或希望使用跨域cookie,请定义 JMeter 属性 

CookieManager.check.cookies = false

功能三

  • 收到的 Cookies 可以自动存储为 JMeter 线程变量
  • 要将 cookie 保存为变量,请定义 JMeter属性

CookieManager.save.cookies = true
  • Cookie 自动存储为 Jmeter 线程变量的名称前缀默认是 COOKIE_ 
  • 如果要自定义前缀可以修改 Jmeter 属性 CookieManager.name.prefix = **** 

功能四

  • 可以将 Cookie 手动添加到 Cookie Manager
  • 自定义 Cookie 将被所有 JMeter 线程共享
  • 自定义 Cookie 的过期时间会很长

功能五

  • 默认情况下,空值的 Cookies 被忽略
  • 可以通过设置 JMeter 属性来更改此设置 CookieManager.delete_null_cookies = false 

HTTP Cookie Manager

HTTP Cookie Manager 界面介绍

字段介绍

单次循环实际栗子

项目背景

  • 一个登录接口,一个添加课程接口
  • 登录接口响应会返回一个Set-cookie,包含一个 sessionid,相当于用户凭证
  • 发送添加课程接口需要传递包含 sessionid 的 Cookie 才能请求成功

Jmeter 属性设置(jmeter.properties 文件)

线程组结构树

整体逻辑:登录请求成功响应后,HTTP  Cookie 管理器会自动存储登录接口返回的 Cookie,后面的请求也能自动调用该 Cookie

线程组属性

HTTP Cookie 管理器

没有自定义的 Cookie

登录请求的响应内容

响应返回 Cookie

添加课程请求的响应内容

调试取样器,查看是否有自动将 Cookie 保存为 Jmeter 变量

有循环次数的实际栗子

线程组结构树

登录请求只会发送一次

线程组属性

循环 2 次

HTTP Cookie 管理器

勾选了【每次反复清除 Cookies】

查看结果树

第一个增加课程请求能成功发送并响应

第二个增加课程请求的响应内容

第二个增加课程请求会返回未登录状态

重点

如果勾选了【每次反复清除 Cookies】,那么每次循环之后都会清除 Cookie 管理器自动存储的 Cookie

注意事项

  • 如果一个采样器(Sampler)同级下有多个 Cookie 管理器,则无法指定当前要使用哪个 Cookie 管理器
  • 另外,存储在一个 Cookie 管理器中的 Cookie 对其他任何管理器均不可用,因此请谨慎使用多个cookie管理器
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值