使用JMeter进行SAP Fiori负载测试:URL传凭证无法登录的解决建议
SAP Fiori负载测试(JMeter):URL传凭证无法登录的解决方法
直接通过URL携带sap-user和sap-password参数登录Fiori Portal失败,通常是因为SAP系统默认禁用了这种明文传递凭证的方式,或者Fiori采用了Form/SSO等更安全的认证机制。以下是针对JMeter的具体解决步骤:
1. 临时启用SAP系统的URL凭证传递权限(仅测试环境使用)
SAP系统默认参数login/allow_sap_user_password_in_url为NO,禁止通过URL明文传递密码。若必须使用该方式测试:
- 联系SAP管理员,通过事务码
RZ10将该参数修改为YES - 重启应用服务器使配置生效
- 测试完成后务必改回
NO,避免安全风险
2. 使用JMeter HTTP Authorization Manager(推荐)
这是更安全且规范的认证方式,无需在URL中暴露凭证:
- 在JMeter测试计划中添加HTTP Authorization Manager
- 设置
Base URL为Fiori Portal根地址(如https://abc.com/sap/bc/ui2/flp) - 填入
Username、Password,根据SAP系统配置选择认证类型(通常选Basic) - 后续请求会自动携带认证头,无需手动拼接URL参数
3. 录制并复用Form登录流程(针对表单登录场景)
如果Fiori Portal使用用户名密码输入表单(而非URL直接认证),需录制完整登录流程:
- 在JMeter中添加HTTP(S) Test Script Recorder,配置代理后,在浏览器中完成Fiori登录操作
- 保留录制后的登录POST请求(通常包含
j_username、j_password等表单参数) - 添加HTTP Cookie Manager,确保后续请求携带会话Cookie维持登录状态
4. 处理SAP SSO认证(若系统启用SSO)
若Fiori使用SAML2.0或SAP Logon Ticket等SSO机制:
- 在JMeter中模拟SSO票据的生成与传递,可借助JMeter的SAP专用插件处理SAML断言或Logon Ticket
- 确保请求携带正确的
SAP_SESSIONID等Cookie及必要的认证头信息
关键注意事项
- 确认请求中携带正确的
sap-client和sap-language参数,建议添加到HTTP Request的参数列表中,而非仅拼接在URL里 - 部分Fiori POST请求需要
X-CSRF-Token,需先发送GET请求获取该Token,再在POST请求的头信息中携带
内容的提问来源于stack exchange,提问作者MUHAMMAD OMER Saleem
相关产品推荐
相关产品推荐

