执行顺序怎么排
执行优先级给用例集排序:P0 核心链路先跑,快速暴露致命问题;P1 重要功能随后;P2 边界与长尾最后或按需。配套止损规则——P0 失败立即终止并通知,避免把时间浪费在注定无效的执行上。它直接决定 CI 流水线的阶段划分与时间预算分配。
基本信息
| 分级依据 | 业务影响乘失败概率乘修复成本 |
|---|---|
| 载体 | 用例标签或标记:pytest -m p0、JUnit 5 @Tag("p0") |
| 阶段划分 | 提交门禁、合并回归、夜间全量三段式 |
| 止损 | P0 失败即停并通知;P1 累计失败率超阈告警 |
| 并行策略 | P0 通常要快,可并行;互斥场景单独串行 |
| 维护 | 新用例必须打级,定期复核级别是否仍成立 |
执行示例
执行示例
pytest -m "p0" -x # 只跑 P0,首个失败即停
pytest -m "p0 or p1" -n 8 # 合并回归:P0 加 P1 并行 8 进程
pytest -m "not p2" # 夜间全量:排除长尾 P2
# 新用例无标记时应兜底为 P1 或显式失败,防止永远跑不到典型使用场景
- CI 分阶段:提交门禁快跑 P0,主干合并跑 P1,夜间全量
- 预发验证:按 P0 到 P2 顺序推进,先稳军心
- 线上巡检:只跑 P0 健康检查类用例
- 发布封板:P0 与 P1 全绿才允许放行
- 时间预算受限时:按级别裁剪而不是随机跳过
级别与处置
| 级别 | 特征 | 失败处置 |
|---|---|---|
| P0 | 核心链路,必过 | 立即停并通知负责人 |
| P1 | 重要分支功能 | 记录并累计告警 |
| P2 | 边界与长尾 | 不阻塞流水线,跟踪修复 |
优先级是执行排列不是质量分级:P2 失败同样是缺陷,只是不在深夜打扰所有人,白天照常处理。
分级会腐化:业务重心变化后要定期调级,否则 P0 越滚越大,最后失去区分度。级别跟着业务走,别一次定终身。
「失败即停」要配通知:流水线红了没人看到,止损机制等于没有。通知要能叫醒责任人,而不是发进没人看的频道。