【发布时间】:2016-04-10 08:07:07
【问题描述】:
HTTP Cookie 管理器像 Web 浏览器一样存储和发送 cookie
一些 cookie 是自动提取和存储的,而另一些是使用用户定义的 cookie 字段明确定义的。cookie 管理器会自动选择哪种类型的 cookie?
【问题讨论】:
标签: cookies jmeter performance-testing
HTTP Cookie 管理器像 Web 浏览器一样存储和发送 cookie
一些 cookie 是自动提取和存储的,而另一些是使用用户定义的 cookie 字段明确定义的。cookie 管理器会自动选择哪种类型的 cookie?
【问题讨论】:
标签: cookies jmeter performance-testing
JMeter 根据 RFC 提取发送请求的所有有效 cookie。
默认情况下,JMeter 不会保存无效的 cookie 或跨域的。
您可以通过设置属性来更改此行为: - CookieManager.check.cookies=false
阅读:
您在表格中输入的值是您要发送的值,并且之前没有由服务器设置,例如:
【讨论】:
不幸的是,没有一个正确的答案。通常,响应中通过Set-Cookie 标头出现的任何内容至少将由 JMeter 评估并考虑存储在 cookie 管理器中。但评估结果取决于 3 个参数,因此最终将保存以下 cookie:
一个简单的小规则:如果 cookie 是 null,jmeter.properties 中的 CookieManager.delete_null_cookies 参数决定是否进一步评估或丢弃此类 cookie。默认情况下,具有 null 值的 cookie 会被丢弃。
Cookie 会根据所选 实施(您在 UI 中指定的这 2 个参数)的所选 Cookie 政策 进一步评估。对于 HC3CookieHandler 实现,默认是 compatibility 策略,描述为:
与流行的 HTTP 代理的常见 cookie 管理提供高度兼容性的策略。
对于HC4CookieHandler,默认策略是standard,描述为
状态管理策略符合 RFC 6265 第 4 节定义的更宽松的配置文件,旨在与不符合良好行为配置文件的现有服务器进行互操作。
JMeter 文档对所有 cookie 策略并没有多说,尽管它们是保存/不保存决策中最重要的因素。大多数策略与 cookie 的安全性和规格有关(例如,是否接受 3rd-party cookie;是否接受缺少字段的 cookie;是否将子域视为 3rd-party cookie)。以下页面为您提供策略摘要:for version 3(匹配 HC3CookieHandler 实现)和version 4(匹配 HC4CookieHandler)。但要详细了解每项政策接受和拒绝的内容,您必须深入研究 RFC。
【讨论】: