3. 食品MES测试环境搭建与数据准备
食品MES的测试环境不是把生产库复制一份就能用。它要同时满足三件事:能模拟真实生产节拍与批次流转、能与ERP/WMS/LIMS/称重设备等外部系统完成接口联调、测试主数据既贴近真实又符合脱敏要求。这三件事决定了测试结论是否可信——环境失真,后面所有用例通过率都只是数字游戏。
一、模拟生产环境的三层配置
建议把测试环境拆成三层来配置,而不是一个"大而全"的测试库:
- 基础层(基础设施与中间件):应用服务器、数据库、消息队列、缓存、文件服务按生产规格的缩比配置。例如生产为3节点应用集群,测试可用单节点但保留相同的JVM参数、连接池上限和超时设置,避免"测试环境从不超时、上线后处处超时"。
- 业务层(MES应用与组织模型):工厂—车间—产线—工位—设备的层级要与实际一致,至少覆盖一条完整产线(如配料—蒸煮—灌装—杀菌—包装—入库)。班次、日历、工作日历要配置真实节假日,否则排产与批次追溯用例无法验证跨班次场景。
- 设备层(采集与执行):用OPC UA/Modbus模拟器替代真实PLC,模拟灌装机、杀菌釜、称重秤、喷码机的关键点位(温度、压力、重量、产量、报警)。模拟器要能按脚本注入异常,例如杀菌釜温度在升温段抖动±1.5℃、称重秤出现超差读数,用于验证MES的报警与拦截逻辑。
二、接口联调环境的搭建要点
食品MES的接口通常分四类:与ERP的主数据与工单同步、与WMS的物料出入库与批次库存、与LIMS的检验任务与结果回传、与设备层的数据采集。联调环境的关键不是"能通",而是"能控"。
推荐做法是为每个外部系统准备一个桩服务(Stub),桩服务既能返回正常报文,也能按开关返回异常:字段缺失、编码不存在、重复推送、超时无响应、返回业务错误码。例如ERP工单下发接口,桩服务可配置"物料编码在MES不存在"的场景,用来验证MES的拒收与告警是否准确。同时保留一份接口报文样例库,按接口名+版本归档,联调时逐条比对字段映射,尤其是单位(kg/g)、日期格式、批次号规则、检验项目编码这类最容易出错的字段。
接口联调检查示例(工单下发)
接口:ERP → MES /api/workorder/sync
必查字段:工单号、物料编码、计划数量、单位、计划开工时间、BOM版本
异常场景:物料编码不存在 / 数量为0 / BOM版本已失效 / 重复推送同一工单
判定标准:正常场景落库成功且回执成功;异常场景MES拒收并写入接口日志,不产生脏工单
三、测试主数据的准备与脱敏策略
测试主数据包括物料、BOM、工艺路线、检验标准四类,它们之间存在强依赖:BOM引用物料,工艺路线引用工序与设备,检验标准挂在物料或工序上。准备顺序应是物料 → BOM → 工艺路线 → 检验标准,否则会出现大量悬空引用。
物料主数据要覆盖食品行业的关键属性:物料编码、名称、规格、基本单位、保质期、存储条件(常温/冷藏/冷冻)、批次管理标识、是否过敏原。BOM要包含配方用量、损耗率、替代料与生效版本;工艺路线要写清工序顺序、标准工时、关键控制点(如杀菌温度/时间);检验标准要区分原料验收、过程检验、成品出厂检验,并给出检验项目、方法、限值与抽样规则。
脱敏不是简单地把供应商名字改成"供应商A"。合理策略是保留结构与业务规则,替换可识别信息:
- 替换:供应商名称、客户名称、真实人名、联系电话、地址,用规则化假名替代(如SUP-001、员工工号E1001)。
- 保形脱敏:物料编码、批次号保留原有编码规则与长度,只改变流水段,确保扫码、解析、追溯逻辑仍可测试。
- 数值扰动:配方用量、检验限值可在合理范围内微调(如某指标限值由≤100调整为≤95),既避免泄露真实配方,又能验证超限拦截。扰动必须记录在数据准备说明中,避免测试结论被误读为真实工艺结论。
- 不可逆:脱敏后的测试库禁止回灌生产,测试数据单独标识来源,防止污染。
四、数据准备的可执行检查清单
为了让环境搭建有明确的完成标准,建议在测试启动前逐项确认。下面这份清单可直接作为数据准备与联调的验收依据:
| 检查项 | 关键内容 | 通过标准 |
|---|---|---|
| 物料主数据 | 覆盖原料、辅料、包材、半成品、成品;含保质期与存储条件 | 无重复编码,批次管理标识与实物一致 |
| BOM | 至少一条完整产品BOM,含损耗率与生效版本 | 展开后用量合计与配方一致,无悬空物料 |
| 工艺路线 | 覆盖配料至入库全工序,标注关键控制点 | 工序顺序可执行,工时与设备匹配 |
| 检验标准 | 原料、过程、成品三类均有项目与限值 | 超限可触发拦截或报警 |
| 接口桩 | 四类外部系统均可切换正常/异常报文 | 异常场景MES拒收并留日志,无脏数据 |
| 设备模拟 | 关键点位可注入抖动与超差 | 报警与拦截逻辑按规则触发 |
| 脱敏记录 | 扰动项、替换规则有书面说明 | 测试结论可追溯,不误读为真实工艺数据 |
完成上述配置后,测试环境应达到一个可判断的状态:给定一张工单,系统能按工艺路线驱动各工序、从设备模拟器采集关键参数、按检验标准触发检验任务、与桩服务完成报文交互,并在异常注入时给出正确的拒收或报警。达到这个状态,才具备进入后续功能用例与集成场景测试的条件。