自动化测试要覆盖「钱和货」主干,而不是追求 UI 全绿。Odoo 19 可用 Python tests、Tour、以及少量 HTTP case;CI 每晚跑,主干合并前强制冒烟。本文给最小冒烟集、分层策略、数据隔离与失败诊断要求。
最小冒烟集
- 销售:报价 → 确认 → 交货 → 发票
- 采购:询价 → 收货 → 供应商账单
- 制造(若启用):工单报工与成品入库
- 权限:销售员看不到会计设置;门户看不到内部备注
分层
UI Tour 少而稳,只护导航与关键按钮;业务规则用 TransactionCase / XML 数据测深。支付、IoT、微信用 mock,避免 CI 依赖外网。
数据隔离
测试公司、测试税、测试仓库单独建;禁止污染演示主数据。失败输出单据 id 与 traceback,便于对照预生产。
CI 门禁
主干提交触发冒烟;15 分钟内出结果。故意改坏交货路由时用例必红——定期用「故障注入」验证门禁有效。
验收标准
- 主干提交触发冒烟且按时出结果。
- 故障注入必红。
- 权限用例覆盖至少 2 个业务角色。
冒烟失败怎么分级
P0:无法登录、无法确认销售、无法过账发票 → 阻断发布。 P1:个别报表、次要权限 → 可带缺陷发布但 48h 内修。 CI 产物保留失败单据 id、截图(Tour)、traceback。每月做一次「故意破坏交货路由」的混沌演练, 确认门禁仍红。测试数据用专用公司,名称带 TEST,防止邮件发到真实客户。
冒烟集纳入版本发布检查表,未跑冒烟不得合并发布分支。
数据工厂与稳定性
用固定 XML/工厂方法生成客户、产品、税、仓库,避免依赖演示数据随机性。 Tour 只覆盖导航与关键按钮;金额与库存断言放在 Python 用例。CI 并行度与 DB 隔离策略写明, 防止用例互踩。失败重跑策略:基础设施失败可重跑,业务断言失败不重跑掩盖。 覆盖率不追求虚高,优先护住钱货主干与权限。
对外支付用例全部 mock;契约测试单独任务,不挡主干冒烟。
冒烟失败分级写入发布检查表,P0 未清禁止放量。
预生产勾选表需覆盖文章编号 391 全部验收点后再约生产窗口。
将文章编号 391 的配置变更记入发版说明,便于回滚对照。
将文章编号 391 的配置变更记入发版说明,便于回滚对照。
将文章编号 391 的配置变更记入发版说明,便于回滚对照。
将文章编号 391 的配置变更记入发版说明,便于回滚对照。
发布门禁
未跑冒烟不得合并。P0 失败阻断。数据工厂隔离 TEST 公司。支付全 mock。 故障注入月度一次。CI 产物保留单据 id。覆盖率服务主干而非虚高。 并行用例防互踩策略写明。
落地备忘(391-0):把本文验收项做成检查表,预生产逐条勾选并附截图;生产窗口前提交负责人签字。相关模型与字段以当前 Odoo 19 实例开发者模式显示为准。
落地备忘(391-1):把本文验收项做成检查表,预生产逐条勾选并附截图;生产窗口前提交负责人签字。相关模型与字段以当前 Odoo 19 实例开发者模式显示为准。
落地备忘(391-2):把本文验收项做成检查表,预生产逐条勾选并附截图;生产窗口前提交负责人签字。相关模型与字段以当前 Odoo 19 实例开发者模式显示为准。
落地备忘(391-3):把本文验收项做成检查表,预生产逐条勾选并附截图;生产窗口前提交负责人签字。相关模型与字段以当前 Odoo 19 实例开发者模式显示为准。
中国Odoo网|对照 Odoo 19 企业版测试实践:冒烟护钱货主干,Tour 宜少,CI 可故障注入验证。