Postman是一个用于构建和使用API的API平台。Postman简化了API生命周期的每个步骤并简化了协作,可以更快地创建更好的API。它是美国加利福尼亚州邮差公司的产品。
下载页面:https://www.postman.com/downloads/
一、Postman测试SAP接口的三种常见场景
1. RFC接口测试(远程函数调用)
· 适用场景:调用SAP标准或自定义函数模块(如 BAPI_MATERIAL_GETLIST)。
· 配置步骤:
1. 新建请求:
o 选择协议 RFC,输入SAP服务器地址(如 http://<SAP_SERVER>:<PORT>/sap/bc/rfc/rfcdest/<DESTINATION>)。
o 设置认证:在 Headers 中添加 Authorization: Basic <Base64EncodedCredentials>(需获取SAP用户凭据)。
2. 定义参数:
o 在 Body 中选择 raw 格式,输入RFC函数的参数(如 MATNR 物料号)。
{ "RFC_FUNCTION_NAME": "BAPI_MATERIAL_GETLIST", "EXPORT": { "MATERIAL": ["MAT001", "MAT002"] } }
3. 发送请求:
o 点击 Send,观察响应结果(如返回物料列表)。
2. Web Service接口测试(如SAP OData)
· 适用场景:调用SAP OData服务(如 https://<SAP_SERVER>/sap/opu/odata/sap/MATnrService)。
· 配置步骤:
1. 新建请求:
o 选择协议 HTTP,输入OData服务URL。
o 设置认证:在 Headers 中添加 Authorization: Bearer <OAuth_Token>。
2. 查询数据:
o 在 Params 中添加查询参数(如 $filter=Matnr eq 'MAT001')。
3. 发送请求:
o 查看响应中的JSON数据(如物料描述、库存数量)。
3. IDoc接口测试(Intermediate Document)
· 适用场景:模拟IDoc传输(如从电商系统发送交货通知)。
· 配置步骤:
1. 上传IDoc文件:
o 在Postman中选择 POST 请求,上传IDoc XML文件(如 EDI_DC 格式)。
2. 设置接收端口:
o 在 Headers 中指定SAP接收端口(如 EDI_DC/INBOUND)。
3. 触发传输:
o 使用事务码 WE02 在SAP中手动监控IDoc状态。
二、查看接口数据传输日志
1. Postman内置日志
· 启用详细日志:
o 打开Postman Settings → General → 勾选 Enable request logging。
· 分析日志内容:
o 查看请求头、正文、响应头和响应体的完整信息。
o 示例日志片段:
Request: POST /sap/bc/rfc/rfcdest/ZTEST_DEST Headers: Authorization: Basic dXNlcjpwYXNzd29yZA== Content-Type: application/json Body: { "RFC_FUNCTION_NAME": "BAPI_MATERIAL_GETLIST" } Response: HTTP 200 OK Content-Type: application/json { "result": ["MAT001", "MAT002"] }
2. SAP服务器端日志
· RFC调用日志:
· 使用事务码 SM50 查看后台作业日志,搜索关键词如 BAPI_MATERIAL_GETLIST。
· Web Service日志:
· 通过事务码 IWF03 查看服务调用的详细跟踪信息。
· IDoc日志:
· 在事务码 WE02 中检查IDoc的处理状态和错误信息。
三、实战案例:测试SAP BAPI接口
场景:通过Postman调用SAP的 BAPI_MATERIAL_GETLIST 获取物料列表。
步骤:
1. 配置Postman请求:
· URL: http://<SAP_SERVER>:8000/sap/bc/rfc/rfcdest/ZTEST_DEST
· Headers:
o Authorization: Basic <Base64Encoded(SAP_USER:SAP_PASSWORD)>
o Content-Type: application/json
· Body:
{ "RFC_FUNCTION_NAME": "BAPI_MATERIAL_GETLIST", "EXPORT": { "MATERIAL": ["MAT001"] } }
2.发送请求并分析响应:
· 成功响应:
{ "RETURN": [ { "TYPE": "S", "MESSAGE": "Data retrieved successfully" } ], "DATA": ["MAT001", "MAT002"] }
· 失败响应:·
· { "RETURN": [ { "TYPE": "S", "MESSAGE": "Data retrieved successfully" } ], "DATA": ["MAT001", "MAT002"] }
3. SAP日志验证:
· 在事务码 SM50 中找到对应作业,检查日志中的错误堆栈(如 CX_SYNTAX_ERROR 表示语法错误)。
四、高级技巧
1. 自动化测试
· 使用 Newman 导出/导入集合:
o 导出Postman测试集合作为 .postman_collection.json,通过CI/CD管道自动化执行。
· 编写Pre-request Script:
// 自动生成SAP Logon Ticket pm.sendRequest({ url: 'http://<SAP_SERVER>/sap/bc/gui/logon/initial_data', method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: { 'sap-client': '100', 'sap-language': 'EN', 'user': 'SAP_USER', 'password': 'SAP_PASSWORD' } }).then((res) => { const ticket = res.body.responseText.match(/<logonticket>(.*?)<\/logonticket>/)[1]; pm.environment.set('SAP_LOGON_TICKET', ticket); });
2. 错误处理与调试
· SAP错误代码解析:
· 通过事务码 SE91 查看SAP消息表(如 T100)中的错误描述。
· Postman断言:
pm.test('Check response status code', function () { pm.response.toHave.status(200); }); pm.test('Check material exists', function () { const jsonData = pm.response.json(); pm.expect(jsonData.DATA).to.include('MAT001'); });
五、注意事项
1. 安全性:
· 避免在Postman中明文存储SAP凭据,使用 Postman Vault 加密敏感信息。
2. 环境隔离:
· 确保测试环境与生产环境分离,避免误操作影响业务数据。
3. 权限控制:
· 使用SAP用户仅授予必要的接口访问权限(如 SAP_REST_ADMIN)。
总结
通过Postman测试SAP接口的核心在于 “模拟真实场景+精准日志分析”。掌握RFC/Web Service/API的配置方法后,结合SAP日志工具(如 SM50、IWF03),可以快速定位接口问题。对于复杂场景,建议进一步学习 SAP PI/PO 或 SAP Cloud Platform 的集成开发技术。