无法捕获 SAML SSO 响应正文中的变量

Unable to capture variables in SAML SSO response body

我必须从以下响应正文中捕获 'RelayState' 和 'SAMLResponse' 值。但是当我尝试遵循 xPath 表达式时,它并没有捕获这些值。是否有解决方法来捕获这些变量以在 Jmeter 脚本中使用?还是我做错了什么?

使用的 Xpath 查询:-

//input[@type='hidden'][@name='RelayState']/@value
//input[@type='hidden'][@name='SAMLResponse']/@value

响应正文

<form method='post' action='localhost:9443/store/acs'>; <p> <!--$params--> <input type='hidden' name='RelayState' value='%2Fstore%2Fpages%2Fgc-landing'> <input type='hidden' name='SAMLResponse' value='PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNhbWwycDpSZXNwb25zZ‌​SBEZXN0aW5hdGlvbj0iaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9Xh0Q2xhc3NSZWY+PC9zYW1sMjpBdXRo‌​bkNvbnRleHQ+PC9zYW1sMjpBdXRoblN0YXRlbWVudD48L3NhbWwyOkFzc2VydGlvbj48L3NhbWwycDpSZ‌​XNwb25zZT4='> <!--$additionalParams--> <button type='submit'>POST</button></p></form> 

你试过正则表达式提取器吗?

Post 处理器 -> 正则表达式提取器:http://jmeter.apache.org/usermanual/component_reference.html#Regular_Expression_Extractor

并使用下面的正则表达式获取 'RelayState' 和 'SAMLResponse'

的值
name='RelayState' value='([^"]+)'
name='SAMLResponse' value='([^"]+)'

尽管有人说正则表达式提取器与 xpath 相比,但我更喜欢使用正则表达式,因为它对整体测试执行的影响较小。您可以在未转义的主体上应用这样的正则表达式,以获得这些值:

name=\"SAMLResponse\" value=\"([^"]+)\"