SAP 顾问必备:Postman 测试 SAP 接口详尽指南

阳光普照SAP技术 2025-03-03 14:10:20 329阅读 举报

Postman是一个用于构建和使用API的API平台。Postman简化了API生命周期的每个步骤并简化了协作,可以更快地创建更好的API。它是美国加利福尼亚州邮差公司的产品。

下载页面:https://www.postman.com/downloads/

一、Postman测试SAP接口的三种常见场景

1. RFC接口测试(远程函数调用)​

· 适用场景:调用SAP标准或自定义函数模块(如 BAPI_MATERIAL_GETLIST)。

· 配置步骤

1. 新建请求

选择协议 RFC,输入SAP服务器地址(如 http://<SAP_SERVER>:<PORT>/sap/bc/rfc/rfcdest/<DESTINATION>)。

设置认证:在 Headers​ 中添加 Authorization: Basic <Base64EncodedCredentials>(需获取SAP用户凭据)。

2. 定义参数

 Body​ 中选择 raw 格式,输入RFC函数的参数(如 MATNR 物料号)。

{
  "RFC_FUNCTION_NAME": "BAPI_MATERIAL_GETLIST",
  "EXPORT": {
    "MATERIAL": ["MAT001", "MAT002"]
  }
}

3. 发送请求

点击 Send,观察响应结果(如返回物料列表)。

2. Web Service接口测试(如SAP OData)​

· 适用场景:调用SAP OData服务(如 https://<SAP_SERVER>/sap/opu/odata/sap/MATnrService)。

· 配置步骤

1. 新建请求

选择协议 HTTP,输入OData服务URL。

设置认证:在 Headers​ 中添加 Authorization: Bearer <OAuth_Token>

2. 查询数据

 Params​ 中添加查询参数(如 $filter=Matnr eq 'MAT001')。

3. 发送请求

查看响应中的JSON数据(如物料描述、库存数量)。

3. IDoc接口测试(Intermediate Document)​

· 适用场景:模拟IDoc传输(如从电商系统发送交货通知)。

· 配置步骤

1. 上传IDoc文件

Postman中选择 POST 请求,上传IDoc XML文件(如 EDI_DC 格式)。

2. 设置接收端口

 Headers​ 中指定SAP接收端口(如 EDI_DC/INBOUND)。

3. 触发传输

使用事务码 WE02 在SAP中手动监控IDoc状态。


二、查看接口数据传输日志

1. Postman内置日志

· 启用详细日志

打开Postman ​Settings​ → ​General​ → 勾选 ​Enable request logging

· 分析日志内容

查看请求头、正文、响应头和响应体的完整信息。

示例日志片段:

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请求

· URLhttp://<SAP_SERVER>:8000/sap/bc/rfc/rfcdest/ZTEST_DEST

· Headers:

Authorization: Basic <Base64Encoded(SAP_USER:SAP_PASSWORD)>

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 导出/导入集合

导出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日志工具(如 SM50IWF03),可以快速定位接口问题。对于复杂场景,建议进一步学习 SAP PI/PO​ 或 ​SAP Cloud Platform​ 的集成开发技术。

 

版权声明:
作者:阳光普照
链接:https://www.erpcool.com/p/e130bec5c6d52.html
来源:SAP技术
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以点击 “举报”


登录 后发表评论
0条评论
还没有人评论过~