performance - 在 Jmeter 中获取 CSRF 令牌以进行 Salesforce 负载测试
问题描述
我正在尝试对 salesforce.com 进行负载测试。我正在通过 test.salesforce.com 登录,它将我重定向到控制台 url。现在,后续的 post 请求接受以下 post 参数。
- 视图状态CSRF
- 视图状态MAC
- visualforce.ViewState
但是这个帖子请求失败并出现“无效会话”错误消息。我猜这是因为 CSRF 令牌。我正在尝试提取(Jmeter 中的后处理器)CSRF 令牌,但我无法在先前请求的响应/cookie 中的任何位置找到此令牌。在其中一个 HTML 响应中,我可以找到几个 CSRF 令牌(例如:runApexCsrfToken、consoleAjaxCsrfToken 等)。我已经尝试了所有这些但没有结果。
总结一下我的问题:我需要在登录后请求中传递 csrf 令牌,但我无法在之前的回复中找到这个令牌。
你能帮我解决这个问题吗?
PS:登录后我尝试在“ https://c.salesforce.com/libs/granite/csrf/token.json ”上获取请求,但没有找到任何响应令牌。
解决方案
- 确保将HTTP Cookie 管理器添加到您的测试计划中
- 确保检查所有响应字段,因为令牌可以是 URL 的一部分或作为HTTP 标头出现
- 您不仅需要关联
ViewStateCSRF
所有其他动态参数,还需要关联
如果您在识别动态参数值的来源时遇到问题,您可以尝试使用基于云的代理服务记录您的场景,它能够以“SmartJMX”模式导出记录的脚本,并自动检测和关联动态参数。有关更多详细信息,请参阅如何将 JMeter 脚本时间缩短 80%文章
推荐阅读
- git - 使用 Git 传达拉取请求的相关更改与向经理显示临时更改
- scala - Scala - 发现错误类型不匹配:需要 List[String]:scala.collection.IterableOnce[Nothing]
- javascript - 使用 XSLT 动态添加 XML 标记,并且不应根据 xml 中特定标记的计数允许重复
- javascript - 哪个javascript函数将返回数组中阈值以下的值的数量
- python - 获取 NaN 以将每行值除以行总和
- database - Criteria API 在 Map 中查找键值对
- swift - 如何使 navigationItem 标题成为 VoiceOver 读取的第一个元素?
- java - 如何使用 Jackson 检查和打印 JDI Value 对象?
- google-apps-script - 从文本和超链接字符串中提取指向 URL 和文本的超链接
- dataset - 关于比特币抢劫数据集的特征解释