6.0 KiB
04 · 起服全量执行
Type: task Status: resolved Blocked by: 01, 02
Claimed: 2026-09-05 · wayfinder 工作会话(frontier 首票) Resolved: 2026-09-05
Question
verify profile 本地起服,跑改写后的 core + heavy + 增量全量执行,原始结果落盘。
要点:
- 构建:Maven 增量陷阱——先删
crm-app/target旧 fat jar 再 package(fat jar 落后源码坑,round-1 票 04 踩过) - 起服:
SPRING_PROFILES_ACTIVE=verify+CRM_MINIO_AK/SK环境变量;判活容忍 401(鉴权门 ≠ 服务挂);debug tokenGET /api/auth/debug/token?userId= - 执行:core(112 例矩阵)→ heavy(6 轮)→ 增量套件(票 02 产物);结果 JSON/日志落
.scratch/customer-e2e-r2/ - 缺陷模式计时控制:D-07 assignable 稳定超时会拖垮全量执行(round-1 实测 30s×2 + probe 60s),用例侧限时策略现场定(进 fog 记录过的「heavy 六轮执行深度」决策)
- 缺陷状态采集:D-01(已修,预期转绿)、D-05/D-07/D-04(预期复现)逐个留下复现证据;新缺陷按 D-xx 续编登记
- 残留清理:
e2c-前缀测试数据 archive 正门清理,报告记录终态
Answer
执行环境:corretto-17 + IDEA maven 全量重建(Remove-Item crm-app\target\*.jar 后 -pl crm-app -am package,BUILD SUCCESS,fat jar 22:29 新鲜);verify profile 起服 26.8s 判活(debug/token HTTP 200)。⚠ 环境修正两条:① 套件解释器 = py -X utf8(3.13.3)——票 02 移交的「venv10 补装 openpyxl」已执行(3.1.5)但 venv10 实为 Playwright 专用环境(无 requests/pymysql),套件三脚本均在 py 3.13 下跑通;② 沙箱对 D 盘 mvn.cmd 持续「拒绝访问」(非瞬时锁,重试两次无效),required_permissions=all 后通过。
执行结果(233 例 = ✅221 ⚠9 ❌3,新缺陷 0):
| 套件 | 终态 | 耗时 | 说明 |
|---|---|---|---|
| core-r2 | 112 例 ✅109 ⚠3 ❌0 | 23.7s | 首轮 ✅106⚠4❌2 → 数据态修复后复跑(见下) |
| heavy-r2 | 58 例 ✅52 ⚠4 ❌2 | ~7.5min | 两轮结果同为 ✅52⚠4❌2 但 ❌ 根因不同(见下) |
| incr | 63 例 ✅60 ⚠2 ❌1 | 19.8s | defects 空,无新缺陷 |
- ⚠9 全部预期内:core 3 = D-02/D-03 缺陷模式复现 + stage=2 数据态演化;heavy 4 = D-07(assignable 30s×2 超时)+ D-05(INSERT 阻断三条,缺陷验证模式);incr 2 = I-01 oplog 等级文案取证型断言(设计即 warn,文案捕获「新增战略协议【二级】」)+ I-06 pool·board 漂移预埋探测(code=0 实证实现无 pool 特判,票 02 预判兑现,归文档侧处置)。
- ❌3 全部归因用例侧,非产品缺陷:heavy F-15×2 = 票 01 改写断言语义偏差——把 r1 的「升级链每轮补下一条」收窄成「恰好 1 条」;DB 证据(evidence-f15-t04.py):5 条 remindSeq 0..4 连续、plan 每条递进一天无重复、终被锚点刷新置失效 = Job 行为与 round-1 观测完全一致;incr I-04 ×1 = 分支盲区——空 ids 实际返回全局参数缺失码 40001「缺少必填参数:ids」(拒绝行为合理),未落「67001/HTTP400」二选一分支;§2.2 错误码对账留票 06。
- 缺陷台账:D-01 复验转绿 ✓(F-07 opportunityCount=1);D-02/D-03(core)、D-05/D-07(heavy)复现证据在案;新缺陷 0,D-08 未触发(incr I-07 SKIP/OVERWRITE 两轮执行面均 DONE——D-05 家族 UPDATE 路径实测正常,round-1 未知面未恶化)。
- fog「heavy 六轮执行深度」决策:全跑——缺陷用例已内建限时(warn 不阻断),heavy 全程 ~7.5 分钟(两次自重启 + 70s×3 Job 等待 + D-07 超时),可接受。
数据态修复记录(测试基建操作,脚本留档可审计):
- collab owner 漂移溯源与两次还原:漂移真源 = heavy F-13 交割圈定 BUDDY 名下全量(setup 的
buddy_leftover查询owner_user_id=BUDDY AND archive_status=1)——round-1 跑 heavy 时把 owner=曾偲青 的协同样例合法「离职交接」转给 admin,teardown 只还原 transfer1/2/3 三个固定客户。⚠ 套件副作用盲区:heavy 任何复跑都会把 BUDDY 名下客户转走且不还原;票 05 UI 冒烟若触发 demo transfer 流同此风险,夹具客户须与 BUDDY 归属解耦。 - followFuture 补未来回访(seed「明天」过期两天,detail-head 对过期 next 不返回系合理语义)——API 补跟进后 detail-head nextFollowTime 复现。
- followOld 的 pending_notice 31 条失效历史清理(r1 升级链证据已在案 r1 报告)+ 锚点重置 30 天前(F-15.10 锚点刷新残留)后 heavy 复跑。
残留终态(要点 6):非 seed 的活跃 e2c- 残留 10 条(r1 撞码对/恒信达系 5 + 本轮 core 二跑快创/confirmSimilar 5)全部 POST /api/customer/archive?id= 正门归档(DB 复核 arch=2);终态 e2c-* 活跃 16 条 = seed 名单全量(第 17 个 seed 样例「e2c-已归档」本就 arch=2)。e2c-r2i-* 零残留(incr 自带 teardown 清扫)。服务已停(8080 释放),票 05 起服流程照 map。
产物索引(.scratch/customer-e2e-r2/):e2e-core-r2-checks.json / specimens-core-r2.json / e2e-heavy-r2-checks.json / specimens-heavy-r2.json / e2e-heavy-r2-defects.json / e2e-incr-checks.json / specimens-incr.json(票 06 聚合输入)+ core-r2-run.log / heavy-r2-run.log / incr-run.log + 数据态审计脚本 db-check-t04.py / db-fix-t04.py / clean-notice-t04.py / reset-anchor-t04.py / evidence-f15-t04.py / scan-residue-t04.py / final-clean-t04.py。
移交票 05(UI 冒烟):① 起服照 map(corretto java 全路径 + verify profile + MinIO env);② Playwright 用 .venv10(chromium-1234 已缓存);③ demo 四新入口待验(agreement subtab / 查重设置 / F6 批量工商 / F8 策略下拉);④ 冒烟产生的测试客户用 e2c- 前缀命名 + 正门 archive 清理,transfer/交割流注意 BUDDY 归属副作用(上条 1)。