Files
silk/docs/acceptance/core-e2e-cases.md
T
2026-08-17 21:43:26 +08:00

90 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 核心端到端验收用例
执行环境:开发服务器或隔离试点环境。每条用例记录:日期、执行人、环境、结果、失败原因、证据截图/日志。
## E2E-01 healthy 图片不触发检测
1. 使用真实或 mock healthy 图片上传巡检。
2. 期望 `abnormalProbability=0`,风险不因 healthy 高置信度升高。
3. 期望不创建待确认检测任务。
## E2E-02 sick/橙色风险只创建一个待确认任务
1. 上传产生橙色风险的非 mock 巡检。
2. 等待 Outbox worker。
3. 查询 `/detection-tasks?sourceType=inspection`,同巡检只出现一个任务。
## E2E-03 AI 失败可重试且不产生虚假风险
1. 停止 AI 服务后上传巡检。
2. 期望 `aiStatus=failed`、无风险分。
3. 恢复 AI 后重试,期望成功且使用同一幂等键不重复记录。
## E2E-04 qPCR 无效不确诊
1. 按当前规则录入无有效对照或无效结果。
2. 期望 `result=invalid`,不创建 `DiseaseEvent`
## E2E-05 有效阳性创建发病事件并自动溯源
1. LAMP 或统一检测任务录入 `positive`
2. 期望创建 `DiseaseEvent`
3. 期望自动创建关联 `TraceRecord`,状态为 `pending`
## E2E-06 无权用户访问受保护资源返回 403
1. 使用无权限用户访问视频、设备控制、WebSocket 设备订阅。
2. 期望业务接口 403,WebSocket 返回拒绝事件。
## E2E-07 离线巡检重启后仅同步一次
1. 断网拍照入队。
2. 重启小程序。
3. 联网后触发同步。
4. 期望服务端仅一条记录,离线队列转为 `synced`
## E2E-08 通知失败重试且状态可查
1. 制造微信/通道失败事件。
2. 等待重试或最终失败。
3. 期望 `notifications` 状态、尝试次数、错误可查询。
## E2E-09 服务重启后任务/通知/吊销状态保持
1. 创建 pending 事件、Outbox、token 吊销。
2. 重启 Go 服务。
3. 期望任务和通知继续处理,吊销仍生效。
## E2E-10 备份恢复后核心记录与对象引用一致
1.`docs/operations/backup-restore-drill.md` 恢复。
2. 核对巡检、检测、会诊、溯源、图片/光谱/录像引用。
3. 记录 RPO/RTO 和失败项。
## E2E-11 跨组织对象访问返回 403
1. 创建组织 A/B,并将不同蚕房分别归属到 A/B。
2. 创建仅属于组织 A 的用户和仅属于组织 B 的用户。
3. 使用 B 用户访问 A 的蚕房、设备、遥测、控制、巡检、检测、会诊、溯源、录像等对象。
4. 期望详情/写操作返回 403,列表不返回 A 组织数据,WebSocket 订阅被拒绝。
5. 记录接口清单和证据。
当前状态:本地 Go/WS 单测已覆盖对象授权,待 v9 部署后执行真实账号联调。
## 2026-08-14 开发服务器执行结果
环境:`100.83.103.1`Go schema v8Web :5174AI :8000mock)。
| 用例 | 结果 | 说明 |
|---|---|---|
| E2E-01 | PASS | healthy 图片 riskScore=0/riskLevel=green,未创建检测任务 |
| E2E-02 | BLOCKED | mock 结果为 `isMock=true`,按设计不进入生产检测任务;待真实模型后执行 |
| E2E-03 | PASS | AI 停止时 `aiStatus=failed` 且无风险;同一幂等键返回原失败记录,恢复后新键上传成功 |
| E2E-04 | PASS | qPCR `invalid` 未创建 DiseaseEvent |
| E2E-05 | PASS | LAMP `positive` 创建 1 个 confirmed DiseaseEvent 和 1 个 TraceRecord |
| E2E-06 | PASS | 普通 viewer 调用控制接口和创建检测任务均 403 |
| E2E-07 | PASS(单元) | 队列单测 5/5;微信开发者工具离线重启截图取证未执行 |
| E2E-08 | PASS | 未配置微信的 Outbox 事件进入 retry,通知表保留尝试次数和错误 |
| E2E-09 | PASS | 吊销 token 后重启 Go,旧 token 仍 401,业务数据保持 |
| E2E-10 | PASS | 备份恢复至隔离库,核心表数量与生产库一致 |