You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter无法录制带Basic HTTP Auth及单点登录的企业网站求助

JMeter录制SSO网站请求失败的解决办法

问题还原

需录制某采用单点登录(SSO)的企业网站HTTP请求,该网站平时通过http://<user>:<pass>@website.com格式的Basic HTTP Auth访问。启动JMeter 8888代理后,可正常录制无SSO的企业网站,但录制该SSO网站时:弹出登录窗口,输入正确凭据3-4次后,出现错误提示:

无网络连接
代理服务器出现问题或地址不正确

可能原因

  • SSO认证流程与JMeter代理的Basic Auth处理逻辑冲突,浏览器反复弹出登录框是因为代理未正确传递原始认证凭据
  • JMeter代理未配置对SSO相关域名的认证转发或绕过规则

具体解决步骤

1. 配置JMeter代理的认证信息

打开JMeter的「HTTP(S) Test Script Recorder」组件:

  • 切换到「Requests Filtering」标签页,在「URL Patterns to Include」中添加目标网站域名,示例:.*website.com.*
  • 切换到「Advanced」标签页,勾选「Use keep-alive」
  • 在「Basic Authentication」区域填入你的<user>和<pass>,让JMeter代理自动传递认证信息

2. 配置浏览器跳过代理的SSO认证域名

若SSO认证服务器域名与业务域名不同,需让浏览器直接访问认证地址,不走JMeter代理:

  • 打开浏览器代理设置,找到「不使用代理的地址」选项
  • 添加SSO认证服务器域名,示例:sso.yourcompany.com(根据实际情况调整)

3. 手动添加SSO认证请求到测试计划

若代理录制仍失败,可通过浏览器抓包手动补全认证请求:

  • 按F12打开浏览器开发者工具的「网络」标签,完成一次正常登录
  • 找到含login、auth等关键词的SSO认证请求(POST/GET类型)
  • 在JMeter中新建HTTP请求,复制该请求的URL、请求方法、参数、Headers(重点是Cookie和Authorization头)
  • 将这些请求放在测试计划最前端,确保后续请求能继承认证会话

4. 调整JMeter Cookie管理器设置

  • 确保测试计划中已添加「HTTP Cookie管理器」,它会自动保存并传递登录后的会话Cookie
  • 若SSO使用自定义Cookie,将Cookie管理器的「Cookie Policy」设置为「standard」或「compatibility」

额外注意事项

  • 关闭浏览器自动保存密码功能,避免干扰代理认证流程
  • 确认JMeter代理端口(8888)未被其他程序占用
  • 测试前清空浏览器缓存和Cookie,避免旧会话影响录制

内容的提问来源于stack exchange,提问作者DevOps QA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 00:35:16