You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
384 lines
10 KiB
384 lines
10 KiB
|
16 hours ago
|
{
|
||
|
|
"checks": [
|
||
|
|
{
|
||
|
|
"flow": "SETUP",
|
||
|
|
"case": "夹具客户 A/B 就位(快照 NULL / 编号回填)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "A=KH202609060005 B=KH202609060006"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "新客户协议列表为空(List 非分页,时间倒序)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "[]"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "新客户快照 NULL=未签",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "snapshot=None"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "create 缺 customerId → 67001(入参非法)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=67001 如预期"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "create 幽灵客户 → 67002(防探测同码)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=67002 如预期"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "create agreementLevel=9 越界 → 67017",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=67017 如预期"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "create 缺 agreementLevel → 67017(等级缺失)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=67017 如预期"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "create 回协议 id(Result<Long>)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "id=751743642858684416"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "快照联动:create 后=2(最新一条回写,不 bump version)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "snapshot=2"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "list 含新协议",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "ids=['751743642858684416']"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "detail 回显(等级/归属/客户名快照/金额文本)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "{'id': '751743642858684416', 'createTime': '2026-09-06 10:00:51', 'updateTime': '2026-09-06 10:00:51', 'customerId': '751743636604977152', '"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "edit 成功(Result<Void>)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=0"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "快照联动:edit 后=3",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "snapshot=3"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "归属不可换(dto.customerId 忽略,编辑以库内归属为准)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "detail.customerId=751743636604977152 B快照=None"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "amount 65 字超长 → 67017",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=67017 如预期"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "detail 幽灵协议 → 67017",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=67017 如预期"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "edit 幽灵协议 → 67017",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=67017 如预期"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "delete 幽灵协议 → 67017",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=67017 如预期"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "delete 成功(软删)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=0"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "快照联动:删空后=NULL(未签)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "snapshot=None"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "list 终态空",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "[]"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "oplog 记 AGREEMENT_ADD/EDIT/DELETE 三写动作",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "actions=['AGREEMENT_DELETE', 'AGREEMENT_EDIT', 'AGREEMENT_EDIT', 'AGREEMENT_ADD', 'CREATE']"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-01",
|
||
|
|
"case": "oplog detail 等级文案(新增战略协议【二级】)",
|
||
|
|
"verdict": "⚠",
|
||
|
|
"detail": "detail=新增战略协议【二级】"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-02",
|
||
|
|
"case": "contact create 回 id",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "id=751743654447546368"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-02",
|
||
|
|
"case": "contact edit 成功",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=0"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-02",
|
||
|
|
"case": "contact delete 成功(软删)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=0"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-02",
|
||
|
|
"case": "六种新 action 齐现(AGREEMENT ×3 + CONTACT ×3)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "缺=[]"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-02",
|
||
|
|
"case": "全部 action 落在 17 种值域内",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "越界=[]"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-02",
|
||
|
|
"case": "action= 过滤生效(仅 AGREEMENT_ADD)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "n=1 actions=['AGREEMENT_ADD']"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-03",
|
||
|
|
"case": "GET 单例可读(CustomerXxxRuleInitializer 首装种子)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "{'id': '1', 'masterEnabled': 1, 'nameEnabled': 1, 'nameMatchMode': 2, 'similarityThreshold': 80, 'phoneEnabled': 1, 'upd"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-03",
|
||
|
|
"case": "save 全量覆盖:响应回显保存后单例(精确/60%)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "{'id': '1', 'masterEnabled': 1, 'nameEnabled': 1, 'nameMatchMode': 1, 'similarityThreshold': 60, 'phoneEnabled': 1, 'upd"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-03",
|
||
|
|
"case": "save→get 回读一致",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "{'id': '1', 'masterEnabled': 1, 'nameEnabled': 1, 'nameMatchMode': 1, 'similarityThreshold': 60, 'phoneEnabled': 1, 'upd"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-03",
|
||
|
|
"case": "开关缺省→0 / 方式缺省→模糊(2) / 阈值显式保留",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "{'id': '1', 'masterEnabled': 0, 'nameEnabled': 0, 'nameMatchMode': 2, 'similarityThreshold': 90, 'phoneEnabled': 0, 'upd"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-03",
|
||
|
|
"case": "阈值缺省 → 出厂 80(非静默保留 90,a7-3-3-2 §4.1 口径)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "{'id': '1', 'masterEnabled': 0, 'nameEnabled': 0, 'nameMatchMode': 1, 'similarityThreshold': 80, 'phoneEnabled': 0, 'upd"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-03",
|
||
|
|
"case": "nameMatchMode=9 ∉ {1,2} → 64023",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=64023 如预期"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-03",
|
||
|
|
"case": "similarityThreshold=101 出 [0,100] → 64023",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=64023 如预期"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-03",
|
||
|
|
"case": "similarityThreshold=-1 出 [0,100] → 64023",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=64023 如预期"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-03",
|
||
|
|
"case": "64023 校验失败未落库(精确/80 保持)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "{'id': '1', 'masterEnabled': 0, 'nameEnabled': 0, 'nameMatchMode': 1, 'similarityThreshold': 80, 'phoneEnabled': 0, 'upd"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-03",
|
||
|
|
"case": "查重设置还原原值",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "原={'masterEnabled': 1, 'nameEnabled': 1, 'nameMatchMode': 2, 'similarityThreshold': 80, 'phoneEnabled': 1} 现={'id': '1', 'masterEnabled': 1, 'nameEnabled': 1, 'nameMatchMode': 2, 'similarit"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-04",
|
||
|
|
"case": "两客户 stub 恒 NO_HIT(五状态软处置;filledFields=0)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "[{'customerId': '751743636604977152', 'customerName': 'e2c-r2i-A-660049', 'status': 'NO_HIT', 'filledFields': 0, 'message': '工商源未查询到匹配企业'}, {'customerId': '7517"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-04",
|
||
|
|
"case": "NO_HIT 无回填:档案前后全等(只补空缺的空转证据)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "before={'A': ('e2c-r2i-A-660049', None, 'gov'), 'B': ('e2c-r2i-B-660049', None, 'gov')} after={'A': ('e2c-r2i-A-660049', None, 'gov'), 'B': ('e2c-r2i-B-660049', None, 'gov')}"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-04",
|
||
|
|
"case": "幽灵客户 → 行级 NOT_FOUND(不整单失败)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "[{'customerId': '999999999999999', 'customerName': None, 'status': 'NOT_FOUND', 'filledFields': 0, '"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-04",
|
||
|
|
"case": "空 ids → 67001/400/40001 拒绝",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=40001 msg=缺少必填参数:ids"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-04",
|
||
|
|
"case": "单次超上限 100 → 67001",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=67001 如预期"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-05",
|
||
|
|
"case": "首访 detail-head 插入 view_log(UNIQUE(user_id,customer_id))",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "rows=1 t1=2026-09-06 10:00:58"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-05",
|
||
|
|
"case": "再访 upsert:仍 1 行 + last_view_time 刷新(RECENT 视图锚点)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "rows=1 t1=2026-09-06 10:00:58 t2=2026-09-06 10:01:00"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-05",
|
||
|
|
"case": "不同用户各占一行(user 维度隔离)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "rows=2"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-06",
|
||
|
|
"case": "get 回 String(null=未设置,前端默认 list)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "orig='list'"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-06",
|
||
|
|
"case": "save split → get=split",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "get='split'"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-06",
|
||
|
|
"case": "save board → get=board(白名单三值皆合法)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "get='board'"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-06",
|
||
|
|
"case": "跨用户隔离(B 写不串 S)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "S get='board'"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-06",
|
||
|
|
"case": "viewForm=card ∉ {list,split,board} → 68001",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=68001 如预期"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-06",
|
||
|
|
"case": "pool·board 被接受 ⚠ 契约漂移(§2.14 称拒绝;实现白名单无 pool 特判)——记档,票 06 聚合",
|
||
|
|
"verdict": "⚠",
|
||
|
|
"detail": "code=0(漂移非缺陷:归 Bruno/API-SUMMARY 文档侧处置)"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-06",
|
||
|
|
"case": "mine 还原为 'list'",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "get='list'"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-06",
|
||
|
|
"case": "pool 还原为 'list'",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": ""
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-07",
|
||
|
|
"case": "SKIP 上传:回显 SKIP + 重复组全失败不写入(t=2 i=0 u=0)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "{'taskId': '751743692309528576', 'importMode': 'UPDATE_ONLY', 'duplicateStrategy': 'SKIP', 'totalCount': 2, 'insertCount': 0, 'updateCount': 0, 'failCount': 2, "
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-07",
|
||
|
|
"case": "OVERWRITE 上传:回显 OVERWRITE + 仅末行生效(u=1)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "{'taskId': '751743693240664064', 'importMode': 'UPDATE_ONLY', 'duplicateStrategy': 'OVERWRITE', 'totalCount': 2, 'insertCount': 0, 'updateCount': 1, 'failCount'"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-07",
|
||
|
|
"case": "duplicateStrategy=BOGUS 非法 → 67013",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=67013 如预期"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-07",
|
||
|
|
"case": "SKIP 执行 DONE:星级=3",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "star=3"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "I-07",
|
||
|
|
"case": "OVERWRITE 执行 DONE:星级=5",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "star=5"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "TEARDOWN",
|
||
|
|
"case": "客户 A 正门 archive",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=0"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "TEARDOWN",
|
||
|
|
"case": "客户 B 正门 archive",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "code=0"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"flow": "TEARDOWN",
|
||
|
|
"case": "e2c-r2i-* DB 兜底清扫(含 oplog/contact/agreement/view_log)",
|
||
|
|
"verdict": "✅",
|
||
|
|
"detail": "客户行 2 组"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defects": [],
|
||
|
|
"elapsedSec": 18.4
|
||
|
|
}
|