JMeter对SharePoint应用的兼容性及ADID认证录制问题咨询
前置说明
JMeter完全支持SharePoint应用的测试,你遇到的ADID弹窗录制失败问题,是ADID认证属于系统级弹窗交互、自带跨域令牌校验逻辑导致的,并非JMeter不兼容该场景。
适配配置步骤
方案一:直接配置认证逻辑(更稳定,优先推荐)
不需要录制交互流程,直接配置认证组件即可实现登录:
- 测试计划下添加
HTTP Authorization Manager,按以下规则配置:- 基础URL:填写SharePoint站点的根域名
- 用户名、密码:填写ADID认证的有效凭据
- 域:填写企业AD域域名,Azure AD场景可填写组织域名或留空
- 认证机制:优先选择
Negotiate (Kerberos),本地AD场景也可选择BASIC_DIGEST
- 添加
HTTP Cookie Manager,勾选「每次迭代清除Cookie」选项,ADID认证依赖会话Cookie维持登录状态 - 若为OAuth 2.0模式的Azure AD认证,额外添加
JSR223 PreProcessor,先调用令牌接口获取access_token,后续所有SharePoint请求的请求头中添加Authorization: Bearer ${access_token}即可,令牌接口的参数可从浏览器F12网络日志中复制:- 常规Azure AD令牌接口地址为
https://login.microsoftonline.com/{租户ID}/oauth2/v2.0/token - 必要请求参数包含client_id、scope、grant_type、username、password,机密客户端场景需额外补充client_secret
- 常规Azure AD令牌接口地址为
方案二:调整录制规则实现流程录制
如果需要保留完整的登录登出交互流程录制,按以下步骤调整:
- 不要使用JMeter自带的HTTP(S)脚本录制器直接录制,改用浏览器F12网络面板导出完整交互的HAR文件
- 打开JMeter选择
工具 -> 从HAR导入,导入生成对应的测试脚本 - 导入完成后按照方案一的配置,补充添加HTTP Authorization Manager、HTTP Cookie Manager即可
常见问题排查
- 配置完成后仍提示认证失败,先检查测试账号是否开启多因素认证(MFA),需为测试账号关闭MFA,或改用服务主体client_secret模式获取令牌,不要使用账号密码认证模式
- 检查请求头的
User-Agent参数是否和常用浏览器的UA一致,部分SharePoint站点会拦截非浏览器UA的请求
内容的提问来源于stack exchange,提问作者Divya Master
相关产品推荐
相关产品推荐

