【问题标题】:How to capture X-CSRF-TOKEN using Jmeter from HTTP Header Manager如何使用来自 HTTP Header Manager 的 Jmeter 捕获 X-CSRF-TOKEN
【发布时间】:2019-12-31 02:21:06
【问题描述】:

我记录了一个页面的登录场景(基于 Java 和 Angular),第一个请求没有在“响应数据”选项卡中显示 X-CSRF-TOKEN,但第二个 HTTP 请求中有 X-CSRF-TOKEN HTTP 标头管理器,当我尝试运行脚本时,第二个 HTTP 请求显示响应代码 401,因为记录的 X-CSRF-TOKEN 不再有效,所以我想知道如何编写正则表达式来捕获 X- CSRF-TOKEN 通过创建 reg 表达式作为后处理器。

请告知如何动态捕获 X-CSRF-TOKEN。

谢谢

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    您能否检查来自 JMeter 或浏览器的第一个请求响应的嵌入式资源?如果您在那里没有看到它,那么您可以与开发人员联系吗?有时在客户端/浏览器端生成令牌(例如使用 javascript),并且此活动不会在 Jmeter 中捕获。

    【讨论】:

      【解决方案2】:

      查看Angular’s XSRF: How It Works 文章:

      • 在当前域中查找名为 XSRF-TOKEN 的 cookie。

      • 如果找到该 cookie,它会读取该值并将其作为 X-XSRF-TOKEN 标头添加到请求中。

      因此,您将无法在响应数据中找到X-XSRF-TOKEN,而是应该在Set-Cookie 响应标头中查找XSRF-TOKEN Cookie

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

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

      3. HTTP Cookie Manager 添加到您的测试计划中

      4. HTTP Header Manager 添加到您的测试计划并将其配置为发送以下标头:

        • 姓名:X-XSRF-TOKEN
        • 值:${COOKIE_XSRF-TOKEN}

      更多信息:How to Load Test CSRF-Protected Web Sites

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-03-12
        • 2016-04-19
        • 2017-06-24
        • 2019-10-16
        • 1970-01-01
        • 2019-05-10
        • 1970-01-01
        相关资源
        最近更新 更多