【问题标题】:Get CSRF token in Jmeter for salesforce load-testing在 Jmeter 中获取 CSRF 令牌以进行 Salesforce 负载测试
【发布时间】:2019-02-08 23:24:25
【问题描述】:

我正在尝试对 salesforce.com 进行负载测试。我正在通过 test.salesforce.com 登录,它将我重定向到控制台 url。现在,后续的 post 请求接受以下 post 参数。

  • ViewStateCSRF
  • ViewStateMAC
  • visualforce.ViewState

但是这个帖子请求失败并出现“无效会话”错误消息。 我猜这是因为 CSRF 令牌。我正在尝试提取(Jmeter 中的后处理器)CSRF 令牌,但我无法在先前请求的响应/cookie 中的任何位置找到此令牌。在其中一个 HTML 响应中,我可以找到几个 CSRF 令牌(例如:runApexCsrfToken、consoleAjaxCsrfToken 等)。我都试过了,但没有结果。

总结一下我的问题:我需要在登录后请求中传递 csrf 令牌,但我无法在之前的回复中找到此令牌。

你能帮我解决这个问题吗?

PS:我在登录后尝试在“https://c.salesforce.com/libs/granite/csrf/token.json”上获取请求,但没有找到任何响应。

【问题讨论】:

    标签: performance jmeter salesforce csrf load-testing


    【解决方案1】:
    1. 确保将HTTP Cookie Manager 添加到您的测试计划中
    2. 确保检查所有响应字段,因为令牌可以是 URL 的一部分,也可以是 HTTP Header
    3. 您不仅需要关联ViewStateCSRF,还需要关联所有其他动态参数

    如果您在识别动态参数值的来源时遇到问题,您可以尝试使用基于云的代理服务记录您的场景,它能够以“SmartJMX”模式导出记录的脚本,并自动检测和关联动态参数。更多详情见How to Cut Your JMeter Scripting Time by 80%文章

    【讨论】:

    • 您好 Dmitri,我希望得到您的回复。非常感谢你的帮助。一个简单的问题,我可以从哪里使用智能 JMX。我找不到它的 chrome 扩展。
    • @shantanu..它是 Blazemeter 提供的基于云的服务。查看链接“How to cut your jmeter scripting time by 80%”了解 Dmitri T 提供的更多详细信息。
    • 为了获得答案,您需要提供更多输入,即转储由 JMeter 发送的请求,这些请求由 Wireshark 之类的嗅探器工具捕获,或分享您尝试模拟的凭据和场景。鉴于您方面的意见有限,我只能提出一般性建议。
    • 感谢大家的及时回复。我正在按照此处提到的 MAC 步骤进行操作。我能够设置代理服务器并安装证书。现在我点击 chrome 标签中的记录按钮并在单独的标签中打开所需的网站(https://)。但它没有记录任何东西。相反,我看到了一些垃圾记录的 URL(主要是 HTTP ping)。请在此处查看附图:ibb.co/dJJT4eibb.co/nuWgPeibb.co/cnMbqK
    • 刚刚验证。这个基于云的工具仅记录基于 HTTP 的网站(不是 HTTPS)。不确定我是否也缺少一些启用 HTTPS 录制的设置。
    猜你喜欢
    • 2012-03-20
    • 2014-08-20
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    相关资源
    最近更新 更多