【问题标题】:How to capture cookie value using JSR223 PreProcessor using jmeter?如何使用 jmeter 使用 JSR223 PreProcessor 捕获 cookie 值?
【发布时间】:2020-12-26 21:42:56
【问题描述】:

传递的动态 cookie 参数(token_id、access_id、state)值未显示在任何响应中,这使得在进一步请求时难以捕获和传递它。有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: javascript session jmeter token


    【解决方案1】:

    您是否尝试过开箱即用的Cookie Manager。它像网络浏览器一样存储和发送 cookie。如果您有一个 HTTP 请求并且响应包含一个 cookie,则 Cookie 管理器会自动存储该 cookie 并将其用于该特定网站的所有未来请求。每个 JMeter 线程都有自己的“cookie 存储区”。

    如果您想使用 JSR223 处理 cookie,则必须使用后处理器。 Pre-processors 在发送请求之前执行。因此,您无法访问预处理器中的响应值。

    API Documentation 如果您真的想操作 cookie,将会很有用。

    【讨论】:

      【解决方案2】:
      1. 最简单的选择是HTTP Cookie Manager

        • 将其添加到您的测试计划中

        • 将下一行添加到 user.properties 文件(位于 JMeter 安装的“bin”文件夹中):

          CookieManager.save.cookies=true
          
        • 重启 JMeter 以获取更改

        • 就是这样,您应该能够在需要时以${COOKIE_token_id}${COOKIE_access_id} 等身份访问您的 cookie

      2. 如果您仍想使用 JSR223 PreProcessor,您可以使用 prev.getResponseHeaders() 函数从 previous 请求中提取 cookie,但是您需要执行一些额外的编码才能:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多