JMeter录制场景下,如何捕获子样本生成并用于重定向的SAMLRequest?
解决SAMLRequest捕获与重定向处理问题
捕获子样本中的SAMLRequest
- 正则表达式提取器:在生成SAMLRequest的父采样器上添加正则表达式提取器,核心配置如下:
- 引用名称:
SAML_REQUEST - 正则表达式:
SAMLRequest=(.*?)(?:&|$) - 模板:
$1$ - 匹配数字:
1
子样本的响应内容会被父采样器聚合,直接在父采样器上配置提取器,就能从响应的URL或表单里提取到SAMLRequest的值。如果是表单隐藏域,可把正则改成<input type="hidden" name="SAMLRequest" value="(.*?)">,根据实际响应内容调整即可。
- 引用名称:
- 查看子样本原始响应:先在树状视图展开子样本,查看响应的原始内容,确认SAMLRequest的存放位置(URL参数、表单、响应体),再针对性调整提取规则。
重定向的替代处理方式
- 关闭自动跟随重定向:在HTTP请求采样器的「高级」标签中,取消勾选「跟随重定向」,这样重定向请求会作为独立采样器显示,你可以直接从该采样器的请求URL中提取SAMLRequest,后续手动构造跳转请求。
- 优化会话管理:确保HTTP Cookie管理器和授权管理器的配置联动,授权管理器完成AD Groups验证后,Cookie管理器自动保存会话标识,避免每次运行脚本时重新生成SAML请求丢失上下文。
- 手动生成SAMLRequest:如果能明确SAMLRequest的生成逻辑(比如固定模板拼接会话ID、时间戳等参数),用JSR223采样器编写代码直接生成,替代录制的子样本流程,这种方式更稳定,减少对录制内容的依赖。
内容的提问来源于stack exchange,提问作者Seirra
相关产品推荐
相关产品推荐

