如何在 Jmeter 中正确捕获 SAMLRequest
Posted
技术标签:
【中文标题】如何在 Jmeter 中正确捕获 SAMLRequest【英文标题】:How do I correctly capture a SAMLRequest in Jmeter 【发布时间】:2019-02-13 13:01:40 【问题描述】:我想做的事:
我正在尝试为经过 SAML 身份验证的应用程序设置负载测试。
到目前为止我做了什么:
我已经在 JMeter 中捕获了我的 http 流量并设置了一个场景。
我已经阅读了 SAML 的工作原理,并试图说明我做错了什么。 但据我所知,我的期望是可行的。
我遇到了什么:
我在 SAMLRequest/SAMLResponse 值的关联方面遇到了一些问题。
我的预期结果与实际结果:
我希望从我登录 SP(使用 SAML 的应用程序)时得到的响应中提取 SAMLRequest 和 RelayState 参数的值
我使用用户名 + 密码登录,然后期望我在 Chrome 开发工具中获得的响应包含 SAMLRequest 和 RelayState
然后我希望提取 SAMLRequest 的值并在下一个 POST 中使用它来获取 SAMLResponse,然后我希望提取该 SAMLResponse 以便在场景的其余部分验证我自己。
但是我误解了某些东西,或者我在某处忽略了某个值,因为我似乎无法找到从哪里捕获 SAMLRequest 以便能够在第一个 SAML 帖子中重用它来获取 SAMLResponse。
我只在记录步骤的 POST 中看到 SAMLRequest 和 RelayState,但为了重新使用此场景,我需要关联这些值,但不知道从哪里获取它们,因为它们似乎没有出现在此 POST 之前的响应(至少我看不到)
我从哪里提取 SAMLRequest 的值以及如何提取?
【问题讨论】:
在进行 POST 调用以进行登录之前,您实际上应该获得SAMLRequest
值。我建议不要在 chrome 开发工具中捕获流量。除了 chrome,还有一些插件可以试用。这是链接chrome.google.com/webstore/search/SAML?hl=en
【参考方案1】:
就像 Amol 上面指出的那样,我发现问题在于 Chrome 浏览器中的响应记录或缺少响应记录。
我已切换到 FireFox,并且能够查看我正在寻找的预期响应。 而在 Chrome 中,根据开发工具,这些响应是空的。
通过关联 JMeter 中通常期望的值来解决问题,现在我知道在哪里可以找到它们。
谢谢阿莫尔!
【讨论】:
以上是关于如何在 Jmeter 中正确捕获 SAMLRequest的主要内容,如果未能解决你的问题,请参考以下文章
我如何从服务器捕获多个响应,并且我必须检查 jmeter 中 JSR223 采样器的特定响应?