【问题标题】:What type of cookies are automatically extracted by HTTP Cookie Manager component of Jmeter?Jmeter的HTTP Cookie Manager组件自动提取什么类型的cookie?
【发布时间】:2016-04-10 08:07:07
【问题描述】:

HTTP Cookie 管理器像 Web 浏览器一样存储和发送 cookie

一些 cookie 是自动提取和存储的,而另一些是使用用户定义的 cookie 字段明确定义的。cookie 管理器会自动选择哪种类型的 cookie?

【问题讨论】:

    标签: cookies jmeter performance-testing


    【解决方案1】:

    JMeter 根据 RFC 提取发送请求的所有有效 cookie。

    默认情况下,JMeter 不会保存无效的 cookie 或跨域的。

    您可以通过设置属性来更改此行为: - CookieManager.check.cookies=false

    阅读:

    您在表格中输入的值是您要发送的值,并且之前没有由服务器设置,例如:

    • 您想在网站上模拟 cookie 持久性篮子
    • 您创建了一组篮子,每个篮子的 id 都会在 cookie 中
    • 您将这些 ID 放入 CSV,在 Jmeter 中使用 CSV 数据集导出变量 basketId
    • 然后您使用 Cookie 管理器并在表中放入 basketId=${basketId}

    【讨论】:

    • 请提出一种方案,在这种方案中手动定义 cookie 会更合适或者是唯一的选择
    • 不应该是 ${COOKIE_basketId} 而不是 ${basketID} 才能使用它,还是手动创建的 cookie 可以像常规 jmeter 变量一样使用?
    • 不是来自csv的,是的,对于那些保存为变量的
    【解决方案2】:

    不幸的是,没有一个正确的答案。通常,响应中通过Set-Cookie 标头出现的任何内容至少将由 JMeter 评估并考虑存储在 cookie 管理器中。但评估结果取决于 3 个参数,因此最终将保存以下 cookie:

    • 一个简单的小规则:如果 cookie 是 nulljmeter.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。

    【讨论】:

    • 不错的答案。对于信息文档有。在 jmeter 3.0 中得到了改进,请查看并提供您的反馈
    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    • 2018-01-17
    • 2018-08-17
    相关资源
    最近更新 更多