无权限

Derrick博客站

工业miniAPP接口调试用例集(赛题适配版)

工业miniAPP接口调试用例集(赛题适配版)

项目名称:工业miniAPP (IndustrialMiniAPP)
用例版本:V1.0
适配接口:工业miniAPP API接口设计说明书V1.0
调试环境:iDME 1.24.090-HCS 本地运行态、Postman/Vscode Rest Client

核心用途:覆盖赛题所有功能点的接口调试,验证接口正确性与赛题适配性,支撑功能演示录屏与工程提交

一、调试前置条件

1.1 环境配置

配置项配置值示例说明
iDME_ENDPOINT127.0.0.1:8080本地部署的iDME运行态端点
APP_IDIndustrialMiniAPPxDM-F平台创建的应用ID
X-Auth-TokenMIIPAgYJKoZIhvcNAQcCo...从iDME平台获取的有效Token(有效期24小时)
基础URL模板http://{iDME_ENDPOINT}/rdm_{APP_ID}_app/services/dynamic/api业务接口基础路径

1.2 通用请求头

{
  "Content-Type": "application/json",
  "X-Auth-Token": "${X-Auth-Token}",
  "X-Project-Id": "8f7a6b5c4d3e2f1a0b9c..." // 专属云场景必填,否则可省略
}

1.3 预期响应规范

所有接口调试通过的标准:

  1. 响应状态码为200(HTTP层面)

  2. 返回code字段为"0000"

  3. data字段包含核心业务数据(如实例ID、编码等)

  4. xdmfErrorCode字段或该字段为空


二、分模块调试用例

2.1 设备管理模块(赛题10分)

用例1:新增设备(核心功能,必过)

用例IDDM-001测试类型功能测试
测试目的验证设备基础信息及扩展属性录入功能,符合赛题所有必填字段要求  
请求URLPOST http://{iDME_ENDPOINT}/rdm_{APP_ID}_app/services/dynamic/api/Equipment/create  
请求体   
{
  "params": {
    "equipmentCode": "EQ20250001",
    "equipmentName": "五轴加工中心",
    "manufacturer": "DMG MORI",
    "brand": "DMG MORI",
    "specification": "CMX 50 U",
    "supplier": "上海某机械有限公司",
    "productionDate": "2025-01-01",
    "serviceLife": "5年",
    "depreciationMethod": "平均年限法",
    "location": "车间A区1号工位",
    "extAttrs": {
      "technicalParams": [
        {"attrName": "功率", "attrValue": "15kW", "attrType": "文本"},
        {"attrName": "转速", "attrValue": "3000rpm", "attrType": "数值"}
      ],
      "spareParts": [
        {"partCode": "SP2025001", "partName": "轴承", "stockQuantity": 10, "unit": "个"}
      ]
    },
    "creator": "test_user"
  }
}

| 预期响应 |

{
  "code": "0000",
  "msg": "设备新增成功",
  "data": {
    "id": "${EQUIPMENT_ID}", // 记录该ID,后续用例复用
    "equipmentCode": "EQ20250001",
    "equipmentName": "五轴加工中心"
  },
  "requestId": "${REQUEST_ID}",
  "timestamp": "${TIMESTAMP}",
  "xdmfErrorCode": ""
}

| 赛题适配点 | 覆盖设备编码、名称、生产厂家等10个必填字段+扩展属性,直接关联设备管理模块5分基础分+5分扩展分 |
| 异常场景测试 | 1. 设备编码重复 → 预期code: E003,msg: "设备编码已存在";2. 缺少生产厂家字段 → 预期code: P008,msg: "生产厂家为必填字段" |

用例2:修改设备状态(核心约束,必过)

用例IDDM-002测试类型功能+约束测试
测试目的验证设备状态变更功能及“被工艺引用不可停机/报废”约束  
前置依赖已执行DM-001,获取EQUIPMENT_ID  
请求URLPOST http://{iDME_ENDPOINT}/rdm_{APP_ID}_app/services/dynamic/api/Equipment/update  
请求体   
{
  "params": {
    "id": "${EQUIPMENT_ID}",
    "status": "STOPPED",
    "lastModifiedBy": "test_user",
    "lastUpdateTime": "2025-01-02T10:00:00"
  }
}

| 预期响应(未被引用场景) |

{
  "code": "0000",
  "msg": "设备状态更新成功",
  "data": {
    "id": "${EQUIPMENT_ID}",
    "status": "STOPPED",
    "lastUpdateTime": "2025-01-02T10:00:00"
  },
  "requestId": "${REQUEST_ID}",
  "timestamp": "${TIMESTAMP}",
  "xdmfErrorCode": ""
}

| 异常场景测试 | 设备被工艺引用时执行此操作 → 预期code: E002,msg: "设备被工艺引用,禁止停机/报废" |
| 赛题适配点 | 验证设备状态变更功能,符合赛题设备管理模块“修改”要求 |

用例3:查询设备列表(筛选功能,必过)

用例IDDM-003测试类型查询测试
测试目的验证按状态、位置筛选设备功能,支撑赛题“设备快速查找和统计”要求  
请求URLPOST http://{iDME_ENDPOINT}/rdm_{APP_ID}_app/services/dynamic/api/Equipment/find/20/1  
请求体   
{
  "params": {
    "filter": {
      "joiner": "and",
      "conditions": [
        {"conditionName": "status", "operator": "=", "conditionValues": ["STOPPED"]},
        {"conditionName": "location", "operator": "like", "conditionValues": ["车间A%"]}
      ]
    },
    "sorts": [{"orderBy": "createTime", "sort": "DESC"}],
    "isNeedTotal": true
  }
}

| 预期响应 |

{
  "code": "0000",
  "msg": "查询成功",
  "data": {
    "items": [
      {
        "id": "${EQUIPMENT_ID}",
        "equipmentCode": "EQ20250001",
        "equipmentName": "五轴加工中心",
        "status": "STOPPED",
        "location": "车间A区1号工位",
        "brand": "DMG MORI",
        "specification": "CMX 50 U"
      }
    ],
    "pageInfo": {
      "curPage": 1,
      "pageSize": 20,
      "totalRows": 1,
      "totalPages": 1
    }
  },
  "requestId": "${REQUEST_ID}",
  "timestamp": "${TIMESTAMP}",
  "xdmfErrorCode": ""
}

| 赛题适配点 | 覆盖设备查询与筛选功能,符合赛题“快速查找和统计”要求 |

2.2 物料管理模块(赛题25分)

用例4:创建物料分类(分类管理,必过)

用例IDMM-001测试类型功能测试
测试目的验证物料树形分类创建功能,支撑赛题“分类管理”要求  
请求URLPOST http://{iDME_ENDPOINT}/rdm_{APP_ID}_app/services/dynamic/api/PartCategory/create  
请求体   
{
  "params": {
    "name": "电子元器件",
    "parentId": null, // 根分类
    "creator": "test_user"
  }
}

| 预期响应 |

{
  "code": "0000",
  "msg": "分类创建成功",
  "data": {
    "id": "${CATEGORY_ID}", // 记录该ID,后续用例复用
    "name": "电子元器件",
    "parentId": null,
    "fullPath": "电子元器件/"
  },
  "requestId": "${REQUEST_ID}",
  "timestamp": "${TIMESTAMP}",
  "xdmfErrorCode": ""
}

| 赛题适配点 | 覆盖物料分类管理功能,直接关联物料管理模块5分 |

用例5:新增物料(基础属性,必过)

用例IDMM-002测试类型功能测试
测试目的验证物料基础属性录入功能,覆盖赛题所有必填字段  
前置依赖已执行MM-001,获取CATEGORY_ID  
请求URLPOST http://{iDME_ENDPOINT}/rdm_{APP_ID}_app/services/dynamic/api/Part/create  
请求体   
{
  "params": {
    "partCode": "P20250001",
    "partName": "高精度齿轮",
    "specification": "M1.5×30×20",
    "stockQuantity": 100,
    "supplier": "深圳某精密零件厂",
    "categoryId": "${CATEGORY_ID}",
    "version": "1.0",
    "status": "ENABLED",
    "extAttrs": {"material": "45号钢"},
    "creator": "test_user"
  }
}

| 预期响应 |

{
  "code": "0000",
  "msg": "物料新增成功",
  "data": {
    "id": "${PART_ID}", // 记录该ID,后续用例复用
    "partCode": "P20250001",
    "partName": "高精度齿轮",
    "version": "1.0",
    "status": "ENABLED"
  },
  "requestId": "${REQUEST_ID}",
  "timestamp": "${TIMESTAMP}",
  "xdmfErrorCode": ""
}

| 赛题适配点 | 覆盖物料编号、名称等5个必填字段,关联物料管理模块5分基础分 |
| 异常场景测试 | 库存数量为负数 → 预期code: P009,msg: "库存数量不能为负数" |

用例6:物料升版(版本管理,必过)

用例IDMM-003测试类型功能测试
测试目的验证物料版本管理功能,支撑赛题“版本管理”要求  
前置依赖已执行MM-002,获取PART_ID  
请求URLPOST http://{iDME_ENDPOINT}/rdm_{APP_ID}_app/services/dynamic/api/Part/saveAs  
请求体   
{
  "params": {
    "sourceInstanceId": "${PART_ID}",
    "version": "1.1",
    "modifier": "test_user",
    "specification": "M1.5×30×22"
  }
}

| 预期响应 |

{
  "code": "0000",
  "msg": "物料升版成功",
  "data": {
    "id": "${NEW_PART_ID}",
    "partCode": "P20250001",
    "version": "1.1",
    "specification": "M1.5×30×22",
    "status": "ENABLED"
  },
  "requestId": "${REQUEST_ID}",
  "timestamp": "${TIMESTAMP}",
  "xdmfErrorCode": ""
}

| 赛题适配点 | 覆盖物料版本管理功能,直接关联物料管理模块5分 |

用例7:构建BOM(BOM管理,必过)

用例IDMM-004测试类型功能测试
测试目的验证物料组成关系创建功能,支撑赛题“构建物料清单BOM”要求  
前置依赖新增父物料P20250002(行星架),获取PARENT_PART_ID;已执行MM-002获取PART_ID(子物料)  
请求URLPOST http://{iDME_ENDPOINT}/rdm_{APP_ID}_app/services/dynamic/api/Part_BOM_Rel/create  
请求体   
{
  "params": {
    "parentPartId": "P20250002",
    "childPartId": "P20250001",
    "quantity": 3,
    "sequence": 1,
    "unit": "个"
  }
}

| 预期响应 |

{
  "code": "0000",
  "msg": "BOM关系创建成功",
  "data": {
    "id": "${BOM_REL_ID}",
    "parentPartId": "P20250002",
    "childPartId": "P20250001",
    "quantity": 3,
    "sequence": 1
  },
  "requestId": "${REQUEST_ID}",
  "timestamp": "${TIMESTAMP}",
  "xdmfErrorCode": ""
}

| 赛题适配点 | 覆盖BOM构建功能,直接关联物料管理模块5分 |

用例8:搜索物料(搜索功能,必过)

用例IDMM-005测试类型功能测试
测试目的验证按编码、名称、分类搜索物料功能,支撑赛题“按属性搜索查看物料”要求  
前置依赖已执行MM-001(CATEGORY_ID)、MM-002(PART_ID  
请求URLPOST http://{iDME_ENDPOINT}/rdm_{APP_ID}_app/services/dynamic/api/Part/find/20/1  
请求体   
{
  "params": {
    "filter": {
      "joiner": "or",
      "conditions": [
        {"conditionName": "partCode", "operator": "like", "conditionValues": ["P2025%"]},
        {"conditionName": "partName", "operator": "like", "conditionValues": ["齿轮%"]},
        {"conditionName": "categoryId", "operator": "=", "conditionValues": ["${CATEGORY_ID}"]}
      ]
    },
    "sorts": [{"orderBy": "partCode", "sort": "ASC"}],
    "isNeedTotal": true
  }
}

| 预期响应 |

{
  "code": "0000",
  "msg": "查询成功",
  "data": {
    "items": [
      {
        "id": "${PART_ID}",
        "partCode": "P20250001",
        "partName": "高精度齿轮",
        "categoryId": "${CATEGORY_ID}",
        "version": "1.0",
        "stockQuantity": 100
      }
    ],
    "pageInfo": {
      "curPage": 1,
      "pageSize": 20,
      "totalRows": 1,
      "totalPages": 1
    }
  },
  "requestId": "${REQUEST_ID}",
  "timestamp": "${TIMESTAMP}",
  "xdmfErrorCode": ""
}

| 赛题适配点 | 覆盖物料搜索功能,直接关联物料管理模块5分 |

2.3 工序及工艺管理模块(赛题15分)

用例9:预置5道工序(配置工序,必过)

用例IDPM-001测试类型批量功能测试
测试目的验证赛题要求的5道固定工序创建功能,关联配置工序模块5分  
请求URLPOST http://{iDME_ENDPOINT}/rdm_{APP_ID}_app/services/dynamic/api/WorkingProcedure/create  
请求体(循环执行5次,每次1道工序)   
// 第1次:毛坯制造(WP001)
{
  "params": {
    "code": "WP001",
    "name": "毛坯制造",
    "productionSteps": "1. 铸造原料;2. 锻造成型;3. 初步打磨",
    "defaultDuration": 60,
    "description": "行星减速器零件毛坯加工",
    "creator": "system"
  }
}
// 第2次:粗加工(WP002)
{
  "params": {
    "code": "WP002",
    "name": "粗加工",
    "productionSteps": "1. 铣削外形;2. 钻孔定位;3. 去毛刺",
    "defaultDuration": 45,
    "description": "零件粗加工成型",
    "creator": "system"
  }
}
// 第3次:精加工(WP003)、第4次:检测(WP004)、第5次:入库(WP005),格式同上

| 预期响应(单道工序) |

{
  "code": "0000",
  "msg": "工序创建成功",
  "data": {
    "id": "${PROCEDURE_ID}",
    "code": "WP001",
    "name": "毛坯制造"
  },
  "requestId": "${REQUEST_ID}",
  "timestamp": "${TIMESTAMP}",
  "xdmfErrorCode": ""
}

| 赛题适配点 | 严格按赛题要求创建5道工序,直接关联配置工序模块5分,每少1道扣1分 |

用例10:新增工艺+关联工序(工艺配置,必过)

用例IDPM-002测试类型组合功能测试
测试目的验证工艺创建及工序关联功能,支撑赛题“配置工艺路线”要求  
前置依赖已执行PM-001,获取5道工序编码(WP001-WP005)  
步骤1:新增工艺   
  • 请求URL:POST http://{iDME_ENDPOINT}/rdm_{APP_ID}_app/services/dynamic/api/WorkingPlan/create

  • 请求体:

    {
      "params": {
        "planId": "PL20250001",
        "planName": "中心轮加工工艺",
        "productName": "精密行星减速器",
        "version": "1.0",
        "description": "中心轮零件全流程加工工艺",
        "operator": "test_user",
        "operationTime": "2025-01-03T09:00:00",
        "status": "Draft"
      }
    }

  • 预期响应:code: 0000,返回PLAN_ID(记录该ID) |
    | 步骤2:关联5道工序(循环执行5次) |

  • 请求URL:POST http://{iDME_ENDPOINT}/rdm_{APP_ID}_app/services/dynamic/api/Plan_Procedure_Rel/create

  • 请求体(以WP001为例):

    {
      "params": {
        "sourcePlanId": "${PLAN_ID}",
        "targetProcedureCode": "WP001",
        "sequence": 1
      }
    }

  • 预期响应:code: 0000,返回关联关系ID |
    | 赛题适配点 | 覆盖工艺创建+工序关联功能,关联配置工艺路线模块5分基础分 |

用例11:工序关联设备/物料(资源关联,必过)

用例IDPM-003测试类型组合功能测试
测试目的验证工序与资源的关联功能,支撑赛题“工艺与工序、工序与设备/物料关联”要求  
前置依赖已执行PM-002(获取PLAN_PROCEDURE_REL_ID)、DM-001(EQUIPMENT_ID)、MM-002(PART_ID  
请求URLPOST http://{iDME_ENDPOINT}/rdm_{APP_ID}_app/services/dynamic/api/Procedure_Resource_Rel/create  
请求体(设备关联)   
{
  "params": {
    "sourceRelationId": "${PLAN_PROCEDURE_REL_ID}",
    "targetType": "DEVICE",
    "targetId": "EQ20250001",
    "quantity": 1
  }
}

| 预期响应 |

{
  "code": "0000",
  "msg": "工序-资源关联成功",
  "data": {
    "id": "${RESOURCE_REL_ID}",
    "sourceRelationId": "${PLAN_PROCEDURE_REL_ID}",
    "targetType": "DEVICE",
    "targetId": "EQ20250001",
    "quantity": 1
  },
  "requestId": "${REQUEST_ID}",
  "timestamp": "${TIMESTAMP}",
  "xdmfErrorCode": ""
}

| 赛题适配点 | 覆盖工序与设备/物料关联功能,关联配置工艺路线模块5分工序关联分 |

用例12:生成工艺路线(核心功能,必过)

用例IDPM-004测试类型核心功能测试
测试目的验证赛题要求的“中心轮零件加工V1.0”工艺路线生成功能  
前置依赖已执行PM-002(工艺状态更新为Submitted)  
请求URLPOST http://{iDME_ENDPOINT}/rdm_{APP_ID}_app/services/dynamic/api/ProcessRoute/create  
请求体   
{
  "params": {
    "planName": "中心轮零件加工", // 赛题固定名称
    "version": "1.0", // 赛题固定版本
    "status": "Published",
    "planId": "${PLAN_ID}",
    "creator": "test_user"
  }
}

| 预期响应 |

{
  "code": "0000",
  "msg": "工艺路线生成成功",
  "data": {
    "routeId": "${ROUTE_ID}",
    "planName": "中心轮零件加工",
    "version": "1.0",
    "status": "Published",
    "planId": "${PLAN_ID}"
  },
  "requestId": "${REQUEST_ID}",
  "timestamp": "${TIMESTAMP}",
  "xdmfErrorCode": ""
}

| 赛题适配点 | 严格按赛题要求生成工艺路线,直接关联配置工艺路线模块满分 |

2.4 数据建模验证用例(赛题30分)

用例13:导出模型Excel+截图(必做,不涉及接口调试)

用例IDDM-001测试类型交付物验证
测试目的验证xDM-F模型导出功能,生成赛题要求的提交物  
操作步骤1. 登录xDM-F平台应用设计态;2. 进入“数据建模”→“模型导出”;3. 选择“Excel格式”导出;4. 截图模型图谱(包含所有实体及关联关系);5. 检查Excel包含实体、字段、关系、索引4个工作表  
交付物要求1. Excel文件:字段完整、约束正确、关联关系清晰;2. 图谱截图:标注实体中文名、功能绑定(如“Part-版本服务”)、关系类型  
赛题适配点直接关联工业数据建模模块30分,模型错误每处扣3-4分  

三、调试流程总览(支撑功能演示录屏)

3.1 完整业务流程调试顺序

  1. 执行DM-001(新增设备)→ DM-002(修改设备状态)→ DM-003(查询设备)

  2. 执行MM-001(创建分类)→ MM-002(新增物料)→ MM-003(物料升版)→ MM-004(构建BOM)→ MM-005(搜索物料)

  3. 执行PM-001(预置5道工序)→ PM-002(新增工艺+关联工序)→ PM-003(关联资源)→ PM-004(生成工艺路线)

  4. 导出模型Excel+截图(交付物)

3.2 演示录屏要点

  1. 每步操作需展示接口请求参数、响应结果及前端页面效果(如有)

  2. 重点展示赛题核心功能:设备扩展属性录入、物料BOM构建、5道工序配置、工艺路线生成

  3. 验证异常场景:设备编码重复、库存为负、工序关联缺失等,展示错误提示

  4. 导出交付物时展示操作过程,确保截图清晰、Excel字段完整


四、常见问题排查

问题现象可能原因排查方法
所有接口返回401Token过期或无效重新从iDME平台获取Token,更新请求头
新增实体返回“字段不存在”实体字段未在xDM-F配置检查xDM-F模型字段配置,确保与请求体字段名一致
关联关系创建失败源/目标实体ID错误核对前置用例返回的实例ID,确保无拼写错误
导出Excel缺少字段模型未发布或部署先发布数据模型,再部署应用至运行态
权限校验失败(code:A002)用户无目标权限检查iDME平台用户角色与权限配置,重新分配权限

要不要我帮你生成一份Postman接口集合导入文件,包含所有用例的请求配置,可直接导入工具调试?

评论

快捷导航

把好文章收藏到微信

打开微信,扫码查看

关闭

还没有账号?立即注册