# 02 — 全链路 E2E 重跑 + e2e-report.md 刷新 Type: task Status: resolved Blocked by: 01 ## 任务 票 12(工作计划四端点)合入工作区后**未做过全量回归**——本票补上,输出最新测试报告: 1. **打包**:Stop-Process 旧服务进程 → `mvn clean package`(fat jar 增量坑,必须 clean;可抽 BOOT-INF/lib 嵌套 jar 验票 12 新类在 jar 内)。 2. **起服**:verify profile + `CRM_MINIO_AK=admin / CRM_MINIO_SK=Itc@123456`(命令见地图 Notes;连远程 DB 8.129.84.155)。 3. **基线重置**:`python .scratch/opportunity-e2e/seed-opportunity.py`(全量 seed,禁 --skip-db-clean)。 4. **全量 E2E**:`python .scratch/opportunity-e2e/e2e-core.py` + `python .scratch/opportunity-e2e/e2e-rules.py` + `python .scratch/opportunity-bugfix/t12-verify.py`,对照票 09 终版基线 ✅99/⚠2/❌0 + ✅47/⚠0/❌0 + 17/17,确认修复项保持绿、无新增回归。 5. **D-01 专项断言**(运行时补验票 01 的代码结论): - 合法入参新建 → `code:0`,`currentStageId` = 发布中模板真实首阶段(非 0 非空); - 阶段进度 `stage/progress` 返回完整 5 节点; - 负路径:停用/删除预设模板 `OPP_STAGE_TPL_01` → 64018 被拒(事务回滚后模板仍是发布中); - (可选,若可控制造瞬态)无发布中模板 → 新建返回 60001 友好文案非 500,恢复后新建恢复正常。 6. **workplan 断言归属拍板**(地图 fog):e2e-core.py 是否并入工作计划断言 vs 依赖 t12-verify.py 独立脚本——执行时定,Answer 记录决定与理由。 7. **报告刷新**:更新 `.scratch/opportunity-e2e/e2e-report.md` 至本轮结果(执行摘要对比表加一列「验收回归(票 02)」;D-01(两个口径)状态行补运行时证据;快照 JSON 归档 `-acceptance` 后缀)。 ## 验收 - 三脚本全量跑完 0❌(残留 ⚠ 必须有非缺陷理由); - D-01 专项断言全绿(新建落真实首阶段 + 64018 保护生效); - e2e-report.md 更新完成,P0/P1 全关结论成立; - 若跑出新缺陷 → 按地图 fog 口径处置(少量 P0/P1 就地修后重跑,成批开新票),Answer 透明记录; - Answer 记录:三脚本计数对比表 + D-01 证据 + 缺陷处置(如有)。 ## Answer **执行环境**:clean package 重建(jar 20260831 14:10,抽 BOOT-INF/lib 嵌套 jar 验票 12 四 workplan 类在位)→ verify profile + MinIO 凭据起服健康 → 全量 seed 重置(速报 0)→ 三脚本全量。 **计数对比**(基线 = 票 09 终版): | 脚本 | 基线(t09-final) | 本轮(acceptance) | 判定 | |---|---|---|---| | e2e-core.py | ✅99/⚠2/❌0(101) | ✅105/⚠1/❌0(106) | 0❌ 保持;⚠2→⚠1(F08 凭据补跑闭环);用例净增 5 = F08 缺省负路径转正式用例 + 脚本演进 | | e2e-rules.py | ✅47/⚠0/❌0 | ✅47/⚠0/❌0 | 完全一致 | | t12-verify.py | 17/17 | 17/17 | 完全一致(票 12 四端点首次全量回归) | | D-01 专项(新增) | — | 7/7 | fail-fast/64018/首阶段/5 节点全绿 | | **合计** | 148:✅146/⚠2/❌0 | **177:✅176/⚠1/❌0 · 新增缺陷 0** | 验收达标 | **D-01(opportunity-fix 口径)运行时证据**(`d01-runtime-assert.py`,7/7): - fail-fast:DB 临时停用全部发布中模板 → 新建 → **60001「系统未配置发布中的商机阶段模板,无法新建商机,请联系管理员在后台发布商机阶段模板」**(非 500);finally 恢复后新建 code=0 不留痕; - 64018:`OPP_STAGE_TPL_01` disable 被拒「系统预设商机阶段模板受保护,不可停用」(与 rules R01 复验一致); - 首阶段落位:新建商机 `currentStageId=747831302777995264`(真实首节点非空);progress 5 节点、首节点 CURRENT(seq=1)。 **偏差处置(4 处脚本就地修,0 后端回归)**——第一轮 core ✅102/⚠2/❌1 的两处偏差均定性为「seed v2 演进 + 旧断言过期」,非后端回归: 1. F14 批量领取 ❌:seed v2(票 11 `ensure_dept_claim_rule`)的 `e2e-seed冠军团队禁领`(发布中)覆盖 B2/BPL(owner_dept=冠军团队)→ claim-batch 整批 66014——**转为 D-09 批量端点禁领守卫的运行时验证用例**(批量正常路径由 t05-verify + 单测覆盖); 2. F08 bizType「缺陷」:D-21 修复在位(66001),旧断言未区分 66001 vs 50001 且上轮凭据缺失 SKIP 从未触发——转正式负路径用例; 3. F14 U02 段假阳性 ⚠:B1 被冠军团队规则永久覆盖(DB 实证 owner_dept=744841308677341184)→ 换 C2(跨中心 744841292483133440,DB 实证非冠军团队); 4. F15 lead 视图跨轮堆积(上轮已积 13 条)→ f15 开头加清理。 修后重 seed 重跑 core 全绿(✅105/⚠1/❌0)。按地图 fog 口径:少量非缺陷偏差就地修并入本 Answer,无成批新票。 **workplan 断言归属拍板**:断言留在 t12-verify.py 独立脚本(自带建测清闭环、MARK 时间戳防撞),不并入 e2e-core.py——core 视图计数断言与 seed 基线强耦合,合入互相污染;e2e-report.md 新增 §三b 统一收录(17/17 + D-01 专项 7/7),报告完整性不受损。demo-subapi-test.py 是否扩展 workplan 断言 → 票 03。 **报告刷新**:e2e-report.md 八处更新——执行摘要加「验收回归(票 02)」列、§二/§三标题演进链、票 02 变化小节、新增 §三b(workplan + D-01 专项,含两个 D-01 口径区分说明)、§六 seed v2 指引(冠军团队禁领事实入「已知数据事实④」);快照归档 `*-acceptance.json` / `report-*-acceptance.md`(t09-final 保留)。**P0/P1 全关结论成立**(22 缺陷闭环状态全部保持)。 **残留**:⚠1(F13 U08 工作目标宽断言——seed 样例未填 workGoal,配置观察项非代码问题,票 09 同款);rules 输出中「A1 领回原位 66014」为脚本辅助步骤非断言(A1 被 B 领取后 owner_dept=冠军团队所致,已记入报告 §六④)。