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.

733 lines
18 KiB

7 days ago
{
"results": [
{
"flow": "F01",
"case": "convertible-leads 下拉接口",
"verdict": "✅",
"evidence": "返回 0 条可关联线索"
},
{
"flow": "F01",
"case": "必填校验(缺商机名称)",
"verdict": "✅",
"evidence": "被拒: 系统内部错误,请稍后重试"
},
{
"flow": "F01",
"case": "新建商机",
"verdict": "✅",
"evidence": "id=748556158666539008"
},
{
"flow": "F01",
"case": "初始负责人=当前用户",
"verdict": "✅",
"evidence": "owner=744842565802524672"
},
{
"flow": "F01",
"case": "初始 oppStatus(U01 观察口径)",
"verdict": "✅",
"evidence": "实测=2(PRD §3.1 取值域内;seed 同现象=2 推进中)"
},
{
"flow": "F01",
"case": "新建后出现在 MINE 视图",
"verdict": "✅",
"evidence": "MINE 命中 1 条"
},
{
"flow": "F02",
"case": "A/MANAGE 视图 total=13",
"verdict": "✅",
"evidence": "期望 13(seed 校验值+F01 新建)"
},
{
"flow": "F02",
"case": "A/MINE 视图 total=5",
"verdict": "✅",
"evidence": "期望 5(seed 校验值+F01 新建)"
},
{
"flow": "F02",
"case": "A/PUBLIC_POOL 视图 total=2",
"verdict": "✅",
"evidence": "期望 2(seed 校验值+F01 新建)"
},
{
"flow": "F02",
"case": "A/FOLLOWED 视图 total=1",
"verdict": "✅",
"evidence": "期望 1(seed 校验值+F01 新建)"
},
{
"flow": "F02",
"case": "A/RECENT 初始(未上报前)",
"verdict": "✅",
"evidence": "total=0(空即符合「仅记录访问过的」)"
},
{
"flow": "F02",
"case": "A/PARTICIPATED",
"verdict": "✅",
"evidence": "total=0(观察值;seed 无团队成员样例,范围口径记录)"
},
{
"flow": "F02",
"case": "B/MINE 范围(公海态不计 MINE)",
"verdict": "✅",
"evidence": "total=4(期望 4:B 造 5 条-1 已入公海)"
},
{
"flow": "F02",
"case": "A/MINE 不含 B 商机(范围互斥)",
"verdict": "✅",
"evidence": "混入: []"
},
{
"flow": "F02",
"case": "keyword 筛选生效",
"verdict": "✅",
"evidence": "命中 2(应仅智慧园区 2 条-F01 无关词)"
},
{
"flow": "F02",
"case": "statusIn=1 筛选(公海态)",
"verdict": "✅",
"evidence": "total=2(期望 2)"
},
{
"flow": "F02",
"case": "page 出参回显列存在性",
"verdict": "✅",
"evidence": "schemeCardStatus/stageStayDays/lastFollowTime 均在"
},
{
"flow": "F02",
"case": "有卡/有跟进商机的回显值非空",
"verdict": "✅",
"evidence": "A2 行三列全有值"
},
{
"flow": "F02",
"case": "公海视图回显入池原因 poolReason",
"verdict": "✅",
"evidence": "poolReason=pool_reason_02 poolStageNameSnapshot=None"
},
{
"flow": "F03",
"case": "MANAGE summary 合计=7 vs page(=推进态(status2))=7",
"verdict": "✅",
"evidence": "口径: =推进态(status2)"
},
{
"flow": "F03",
"case": "board/cards 首批限量+翻页不重不漏",
"verdict": "✅",
"evidence": "首页=['748556125825138688'] 次页=['748556131550363648']"
},
{
"flow": "F03",
"case": "PUBLIC_POOL summary 合计=7 vs page(=公海态(status1))=2",
"verdict": "⚠",
"evidence": "口径: 不吻合(全库推进态=7)"
},
{
"flow": "F04",
"case": "view-touch 上报",
"verdict": "✅",
"evidence": ""
},
{
"flow": "F04",
"case": "detail 出参全性(PRD §7.9)",
"verdict": "⚠",
"evidence": "null 字段: 节点停留天数,下阶段名,方案卡状态,方案预算,是否关注,最近跟进"
},
{
"flow": "F04",
"case": "detail.followed(A 已关注 B1,非 A2)",
"verdict": "✅",
"evidence": "A2.followed=None"
},
{
"flow": "F04",
"case": "RECENT 出现刚访问的商机",
"verdict": "✅",
"evidence": "recent ids 前3=['748556125825138688', '748556126794022912']"
},
{
"flow": "F04",
"case": "RECENT 倒序(后访问在前)",
"verdict": "✅",
"evidence": "A1 idx=0 A2 idx=1(A1 后 touch 应更靠前)"
},
{
"flow": "F05",
"case": "编辑回写",
"verdict": "✅",
"evidence": ""
},
{
"flow": "F05",
"case": "remark 已更新",
"verdict": "✅",
"evidence": "remark=E2E改备注-14:54:55"
},
{
"flow": "F05",
"case": "暂缓态编辑受限(负路径)",
"verdict": "⚠",
"evidence": "暂缓态仍可编辑!code=0"
},
{
"flow": "F06",
"case": "unfocus 后 FOLLOWED=0",
"verdict": "✅",
"evidence": "total=0"
},
{
"flow": "F06",
"case": "focus 后 FOLLOWED=1 且 detail.followed=true",
"verdict": "⚠",
"evidence": "FOLLOWED=1 followed=None"
},
{
"flow": "F06",
"case": "focus-batch 两条 → FOLLOWED=3",
"verdict": "✅",
"evidence": "total=3"
},
{
"flow": "F06",
"case": "B 视角关注 A 商机(跨部门可见性)",
"verdict": "✅",
"evidence": "B_FOLLOWED=1"
},
{
"flow": "F07",
"case": "写跟进",
"verdict": "✅",
"evidence": "id=748556179256377344"
},
{
"flow": "F07",
"case": "跟进分页 +1",
"verdict": "✅",
"evidence": "2 → 3"
},
{
"flow": "F07",
"case": "lastFollowTime/lastValidFollowTime 刷新(回收锚点)",
"verdict": "✅",
"evidence": "last=None valid=2026-08-28 14:54:55"
},
{
"flow": "F07",
"case": "delete 后分页 -1",
"verdict": "✅",
"evidence": "3 → 2"
},
{
"flow": "F08",
"case": "file/upload(MinIO 直传)",
"verdict": "✅",
"evidence": "fileId=748556181395472384 name=e2e-attach.txt"
},
{
"flow": "F08",
"case": "add→list 出现",
"verdict": "✅",
"evidence": "list 1 条"
},
{
"flow": "F08",
"case": "资料类型/出参结构",
"verdict": "✅",
"evidence": "字段示例: ['bizId', 'bizType', 'createTime', 'creatorId', 'deleteKey', 'deleted', 'fileId', 'id', 'materialType', 'oppId']"
},
{
"flow": "F08",
"case": "delete 后消失",
"verdict": "✅",
"evidence": ""
},
{
"flow": "F08",
"case": "下载端点探测 /api/file/download",
"verdict": "✅",
"evidence": "HTTP 200(若 404 按缺陷候选核源码)"
},
{
"flow": "F09",
"case": "selectable-templates 含发布中模板",
"verdict": "✅",
"evidence": "1 条,templateId=748508098259320832"
},
{
"flow": "F09",
"case": "valuesJson 装配(seed 卡 fields 骨架)",
"verdict": "✅",
"evidence": "fields=8 动态项=6"
},
{
"flow": "F09",
"case": "一客户一卡约束(同客户重复建卡被拒)",
"verdict": "✅",
"evidence": "被拒: 该客户在本商机下已有方案卡(一客户一卡),请直接编辑原卡"
},
{
"flow": "F09",
"case": "新建方案卡草稿",
"verdict": "✅",
"evidence": "cardId=748556187674345472"
},
{
"flow": "F09",
"case": "草稿态 cardStatus=1",
"verdict": "✅",
"evidence": "cardStatus=1"
},
{
"flow": "F09",
"case": "草稿可编辑(card_status<3)+ 预算回写",
"verdict": "✅",
"evidence": "budget=130000.0"
},
{
"flow": "F09",
"case": "提交后 cardStatus 推进",
"verdict": "✅",
"evidence": "cardStatus=2"
},
{
"flow": "F09",
"case": "提交后主表 schemeBudget/schemeCardStatus 回显(P0-4 锚点)",
"verdict": "⚠",
"evidence": "主表 budget=None cardStatus=None(多卡取值口径观察)"
},
{
"flow": "F09",
"case": "多卡列表口径(2 张卡并列)",
"verdict": "✅",
"evidence": "2 张"
},
{
"flow": "F10",
"case": "勘察次数自动生成(P1-2 拍板)",
"verdict": "⚠",
"evidence": "不传 surveySeq 被拒——次数需调用方传,与拍板不符"
},
{
"flow": "F10",
"case": "新增勘察(传 surveySeq)",
"verdict": "✅",
"evidence": "id=748556192556515328"
},
{
"flow": "F10",
"case": "勘察次数自动生成(P1-2)",
"verdict": "✅",
"evidence": "surveySeq 列表=['survey_seq_01']"
},
{
"flow": "F10",
"case": "补充说明必填(P1-3 负路径)",
"verdict": "⚠",
"evidence": "未拦截空说明!"
},
{
"flow": "F10",
"case": "删除后次数重算(口径观察)",
"verdict": "✅",
"evidence": "删后 surveySeq=['survey_seq_02']"
},
{
"flow": "F11",
"case": "customer/list(seed DB 补入的关联客户)",
"verdict": "✅",
"evidence": "2 条"
},
{
"flow": "F11",
"case": "出参结构(角色/快照/主要意向标记)",
"verdict": "✅",
"evidence": "role=customer_role_01 snapshot=园科集团(seed快照) primary=1"
},
{
"flow": "F11",
"case": "primaryCustomerSnapshot 与 detail 回显一致",
"verdict": "✅",
"evidence": "detail.primary=园科集团(快照)"
},
{
"flow": "F11",
"case": "端点探测 /api/opportunity/customer/add",
"verdict": "❌",
"evidence": "HTTP 404"
},
{
"flow": "F11",
"case": "端点探测 /api/opportunity/customer/search",
"verdict": "❌",
"evidence": "HTTP 404"
},
{
"flow": "F11",
"case": "端点探测 /api/opportunity/customer/set-primary",
"verdict": "❌",
"evidence": "HTTP 404"
},
{
"flow": "F12",
"case": "team/list",
"verdict": "✅",
"evidence": "1 条(seed 无样例)"
},
{
"flow": "F12",
"case": "端点探测 /api/opportunity/team/add",
"verdict": "❌",
"evidence": "HTTP 404"
},
{
"flow": "F12",
"case": "端点探测 /api/opportunity/team/delete",
"verdict": "❌",
"evidence": "HTTP 404"
},
{
"flow": "F12",
"case": "端点探测 /api/opportunity/team/update",
"verdict": "❌",
"evidence": "HTTP 404"
},
{
"flow": "F12",
"case": "PARTICIPATED 视图(成员联动口径,无样例记录观察)",
"verdict": "✅",
"evidence": "total=0"
},
{
"flow": "F14",
"case": "暂缓 E4: 2→3",
"verdict": "✅",
"evidence": "oppStatus=3"
},
{
"flow": "F14",
"case": "受限态出边(§3.3):暂缓不可直接关闭",
"verdict": "⚠",
"evidence": "竟成功!0"
},
{
"flow": "F14",
"case": "数据修正后回到暂缓态",
"verdict": "✅",
"evidence": "oppStatus=3"
},
{
"flow": "F14",
"case": "CAS 守卫(§3.4):前置态已变再提交",
"verdict": "✅",
"evidence": "被拒: 当前状态不允许此操作"
},
{
"flow": "F14",
"case": "取消暂缓 E5: 3→2",
"verdict": "✅",
"evidence": ""
},
{
"flow": "F14",
"case": "关闭 E6: 2→4",
"verdict": "✅",
"evidence": ""
},
{
"flow": "F14",
"case": "受限态出边:已关闭不可 resume",
"verdict": "✅",
"evidence": "当前状态不允许此操作"
},
{
"flow": "F14",
"case": "重启 E7: 4→2",
"verdict": "✅",
"evidence": ""
},
{
"flow": "F14",
"case": "抛公海 E3: 2→1(公海 total)",
"verdict": "✅",
"evidence": "PUBLIC_POOL=4(期望 2+2)"
},
{
"flow": "F14",
"case": "poolReason 枚举落库+公海回显(§3.5)",
"verdict": "✅",
"evidence": "poolReason=pool_reason_02"
},
{
"flow": "F14",
"case": "领取 E1: 1→2 + 负责人变更",
"verdict": "✅",
"evidence": "status=2 owner=744842566742048768"
},
{
"flow": "F14",
"case": "批量领取",
"verdict": "✅",
"evidence": ""
},
{
"flow": "F14",
"case": "分配 E2: 1→2 指定负责人",
"verdict": "✅",
"evidence": "owner=744842565802524672"
},
{
"flow": "F14",
"case": "批量分配",
"verdict": "✅",
"evidence": ""
},
{
"flow": "F14",
"case": "批量关闭",
"verdict": "✅",
"evidence": ""
},
{
"flow": "F14",
"case": "移交 E9(自环换 owner)",
"verdict": "✅",
"evidence": "owner=744842566742048768"
},
{
"flow": "F14",
"case": "U02 禁领规则草稿",
"verdict": "✅",
"evidence": "id=748556215721656320"
},
{
"flow": "F14",
"case": "U02 禁领版本发布",
"verdict": "✅",
"evidence": ""
},
{
"flow": "F14",
"case": "U02 禁领负路径:领取被拒",
"verdict": "⚠",
"evidence": "禁领版发布后仍可领取!"
},
{
"flow": "F14",
"case": "停用禁领版后恢复领取",
"verdict": "✅",
"evidence": ""
},
{
"flow": "F14",
"case": "切阶段前进(progress 当前节点变化)",
"verdict": "✅",
"evidence": "当前节点={'nodeId': '747831302870269952', 'seqNo': 2, 'stageDictCode': 'OPP_STAGE_02', 'customNodeName': None, 'workGoal': None, 'isFixed': 0, 'nodeState': 'CURRENT'}"
},
{
"flow": "F14",
"case": "切阶段回退",
"verdict": "✅",
"evidence": ""
},
{
"flow": "F14",
"case": "非法 toStageId 负路径",
"verdict": "✅",
"evidence": "目标阶段节点不存在或已被删除"
},
{
"flow": "F13",
"case": "oplog/page(A2 经历 release/close/reopen/handover 应有多条)",
"verdict": "⚠",
"evidence": "2 条"
},
{
"flow": "F13",
"case": "oplog 字段(实体/字段/旧值/新值/说明 P1-5)",
"verdict": "✅",
"evidence": "keys=['bizRef', 'createTime', 'creatorId', 'deleted', 'entityName', 'fieldName', 'id', 'logType']"
},
{
"flow": "F13",
"case": "oplog 覆盖内容(流转是否留痕观察)",
"verdict": "⚠",
"evidence": "2 条: [('ROW_CHANGE', None), ('ROW_CHANGE', None)]"
},
{
"flow": "F13",
"case": "stage/history(切阶段 2 次应留痕)",
"verdict": "✅",
"evidence": "2 条"
},
{
"flow": "F13",
"case": "progress 节点名+完成状态(U08)",
"verdict": "✅",
"evidence": "5 节点"
},
{
"flow": "F13",
"case": "工作目标文本存在性(U08 宽断言)",
"verdict": "⚠",
"evidence": "goal=False"
},
{
"flow": "F15",
"case": "save 视图",
"verdict": "✅",
"evidence": "viewId=17367f4ea8184b82bc2ef10e9b648341"
},
{
"flow": "F15",
"case": "list 查到新视图",
"verdict": "✅",
"evidence": ""
},
{
"flow": "F15",
"case": "同 viewId 重复 save(upsert 语义实测)",
"verdict": "✅",
"evidence": "同 id 条数=1 name=e2e-A-改名视图"
},
{
"flow": "F15",
"case": "set-default 回显默认标记",
"verdict": "✅",
"evidence": "isDefault=True"
},
{
"flow": "F15",
"case": "scopeKey 维度隔离(lead 视图不串 opportunity 域;list 出参无 scopeKey 回显)",
"verdict": "✅",
"evidence": "lead names=['e2e-A-lead域视图', 'e2e-A-lead域视图', 'e2e-A-lead域视图', 'e2e-A-lead域视图', 'e2e-A-lead域视图', 'e2e-A-lead域视图', 'e2e-A-lead域视图', 'e2e-A-lead域视图', 'e2e-A-lead域视图'] / opportunity names=['e2e-A-改名视图', 'e2e-A-改名视图']"
},
{
"flow": "F15",
"case": "delete 后消失",
"verdict": "✅",
"evidence": ""
},
{
"flow": "F15",
"case": "B 的 seed 视图不受影响",
"verdict": "✅",
"evidence": "B 视图 1 条"
}
],
"defects": [
{
"flow": "F01",
"title": "必填校验以系统异常(500 类)实现而非参数错误提示",
"level": 2,
"evidence": "系统内部错误,请稍后重试"
},
{
"flow": "F03",
"title": "PUBLIC_POOL 看板合计未按该视图状态口径过滤(summary=7,视图内目标态商机=2)",
"level": 2,
"evidence": "sum=7 page(statusIn=1)=2"
},
{
"flow": "F04",
"title": "detail 联动字段未回显: ['节点停留天数', '下阶段名', '方案卡状态', '方案预算', '是否关注', '最近跟进']",
"level": 2,
"evidence": "{\"id\": \"748556126794022912\", \"createTime\": \"2026-08-28 14:54:48\", \"updateTime\": \"2026-08-28 14:54:48\", \"oppName\": \"e2e-A-推进-智慧园区二期\", \"oppSource\": \"opp_source_02\", \"oppType\": \"\", \"industryCode\": \"gov\", \"bidForm\": \"bid_form_01\", \"localityType\": \"locality_type_01\", \"partyAClear\": 1, \"partyA\": \"E2E甲方·A-推进-智慧园区二期\", \"provinceCode\": \"\", \"cityCode\": \"\", \"remark\": \"票05 seed 造数样例(前端联调数据)\", \"projectAmount\": "
},
{
"flow": "F05",
"title": "暂缓态商机编辑未被拦截",
"level": 1,
"evidence": "{\"code\": 0, \"success\": true, \"message\": \"success\", \"data\": null}"
},
{
"flow": "F08",
"title": "attachment/add 可选参数 bizType 缺省即 50001(接口 optional vs 表 biz_type NOT NULL 契约矛盾)",
"level": 2,
"evidence": "日志: Field 'biz_type' doesn't have a default value"
},
{
"flow": "F09",
"title": "方案卡提交后主表预算未回显(多卡时取值口径需人工核 P2-3)",
"level": 2,
"evidence": ""
},
{
"flow": "F10",
"title": "勘察次数需调用方传入(add 必填 surveySeq),与「次数自动生成」拍板不符",
"level": 2,
"evidence": ""
},
{
"flow": "F10",
"title": "现场勘察补充说明未强制必填",
"level": 2,
"evidence": ""
},
{
"flow": "F11",
"title": "添加关联客户(原型 A3-1-1-2-4 有按钮) 无对应端点(404)",
"level": 1,
"evidence": "/api/opportunity/customer/add"
},
{
"flow": "F11",
"title": "客户搜索(添加弹窗第一步) 无对应端点(404)",
"level": 1,
"evidence": "/api/opportunity/customer/search"
},
{
"flow": "F11",
"title": "设为主要意向客户(原型 A3-1-1-1-2) 无对应端点(404)",
"level": 1,
"evidence": "/api/opportunity/customer/set-primary"
},
{
"flow": "F12",
"title": "添加团队成员(原型 A3-1-1-1-8 +添加成员) 无对应端点(404)",
"level": 1,
"evidence": "/api/opportunity/team/add"
},
{
"flow": "F12",
"title": "移除团队成员 无对应端点(404)",
"level": 1,
"evidence": "/api/opportunity/team/delete"
},
{
"flow": "F12",
"title": "编辑团队成员角色 无对应端点(404)",
"level": 1,
"evidence": "/api/opportunity/team/update"
},
{
"flow": "F14",
"title": "暂缓态可直接关闭(迁移边约束缺失)",
"level": 1,
"evidence": ""
},
{
"flow": "F14",
"title": "禁领规则版本未生效(allowFreeClaim=0 仍可自由领取)",
"level": 1,
"evidence": ""
},
{
"flow": "F13",
"title": "oplog 未覆盖全部操作(A2 经历 release/assign/close/reopen/handover 等仅 2 条留痕)",
"level": 2,
"evidence": "[('ROW_CHANGE', None), ('ROW_CHANGE', None)]"
}
],
"skips": []
}