Files
platforms/checking/04-环境数据与依赖计划.md

74 lines
5.6 KiB
Markdown
Raw Permalink 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.
# 测试环境、数据与依赖计划
## 1. 环境分层
| 环境 | 用途 | 数据 | 外部依赖 |
| --- | --- | --- | --- |
| Local | 单元、组件、快速接口调试 | 自动生成、可重置 | 内存/本地 Mock |
| CI | 静态、单元、契约、构建 | 每任务独立数据库 | 容器化替身,禁止共享状态 |
| Integration | API+DB+Redis+Worker+Gateway+MQTT Server 集成 | 固定基线+场景数据 | 支付沙箱、设备模拟器和故障注入 |
| Staging | 全端 E2E、专项、UAT | 脱敏仿真数据 | 尽量接真实沙箱、设备模拟器 |
| Production | 发布后只读/低风险冒烟 | 生产数据 | 禁止造资金与高风险设备动作,除非有演练审批 |
各环境必须记录:代码提交、构建号、配置版本、数据库 Schema、种子版本、依赖版本、测试开始/结束时间。测试不得使用真实密码、令牌、证件、银行卡、精确住址和生产定位轨迹。
## 2. 基础设施
- PostgreSQL每轮可重置的独立库启用约束、事务、时区和并发测试保留慢查询与锁等待观测。
- Redis验证码、限流、支付密码锁定及未来事件流提供清空命名空间、断连、延迟和重启能力。
- API默认基线 `http://localhost:12426`;按平台、气站、配送点、用户、服务人员分别生成令牌。
- Worker配置支付扫描与 IoT 轮询间隔、API/Gateway 地址和内部令牌;支持加速时钟、上游超时与重启测试。
- IoT Gateway独立端口、API/IoT Server 上游地址和内部令牌;测试中确认不持久化业务事实。
- IoT Server独立 HTTP/MQTT 端口、Mochi Broker、V1.8 AES 密钥环、逐设备 Client ID/设备号/凭证、Topic ACL集成环境使用测试证书启用 MQTT TLS。
- 设备模拟器:至少两台合法设备和一台攻击设备,支持 `up/ack/down`、断线重连、重复包、乱序包、坏 LRC、错误 AES key、ACK 成功/失败/丢失。
- 对象存储替身:支持上传、下载授权、过期、拒绝、超时、损坏和病毒扫描结果模拟。
- 时间控制支持验证码过期、SLA、合同、证照、订单、提现及幂等窗口的时间推进。
## 3. 账号与权限数据集
每种角色至少准备“正常、禁用、过期凭证、无菜单、只读、跨组织”六类账号:
| 角色 | 最少数据 |
| --- | --- |
| 平台 root/运营/财务/安全/审计/客服 | 能力互斥,验证财务不能控设备、安全不能改资金、审计只读 |
| 气站管理员 A/B | 两个不同气站,各自包含人员、用户、合同、订单和钱包 |
| 配送点管理员 A/B | 分属不同组织,含配送人员与轨迹数据 |
| 用户 A/B/家庭成员 | 设备所有者、只读共享者、可控制共享者、已撤销成员 |
| 配送员/安装维修员/安检员 | 待审核、资质过期、未培训、未上班、区域外、完全合格 |
权限测试使用“同结构不同组织”的镜像数据,避免因目标不存在造成假通过。
## 4. 核心业务数据集
- 设备:未激活、未绑定、已绑定、在线、离线、高风险锁定、命令待确认、不同厂商/固件。
- 遥测:正常、阈值前后、重复、乱序、未来时间、非法单位、极端值、缺字段和伪造身份。
- 安全1/2/3 级事件、待整改、复检失败、已关闭、SLA 即将/已经超时。
- 商品/合同/订单:正常、库存边界、过期合同、多商品、多任务、部分履约、异常、取消、完成。
- 资金0 余额、临界余额、余额不足、大额、并发支付、重复回调、退款、提现各状态、对账差异。
- 取证:合法图片/PDF/视频、超限文件、扩展名与 MIME 不符、损坏文件、恶意样本、安全扫描失败。
- 离线队列:重复幂等键、乱序采集、时钟偏移、网络切换、部分上传成功、应用被杀后恢复。
## 5. Mock 与沙箱契约
每个 Mock 必须可配置成功、业务拒绝、超时、连接断开、重复回调、乱序回调和不可解析响应并记录输入输出供断言。Mock 不得比真实依赖更宽松。
| 依赖 | 必备模拟能力 |
| --- | --- |
| MQTT/设备 | 每设备认证、Topic ACL、在线/离线、命令 ACK/拒绝/超时、重复回执、伪造设备、坏帧、遥测峰值 |
| 支付 | 签名正确/错误、金额/订单/商户不符、重复/乱序回调、查询补偿 |
| 短信/推送 | 成功、失败、延迟、重复、限流、部分接收人失败 |
| 地图/定位 | 正常、低精度、权限拒绝、漂移、区域外、无位置、后台受限 |
| 电子合同 | 签署成功、拒签、超时、回调重放、原文哈希不符 |
| 对象存储/扫描 | 上传成功、过期授权、超限、恶意、损坏、下载越权 |
## 6. 数据清理与证据
- 测试数据以专用前缀和批次 identity 标记,通过受控脚本清理;不得物理删除资金、安全和审计事实来“恢复环境”。
- 证据至少包含请求/响应(脱敏)、数据库断言、审计记录、日志关联 ID、截图/录屏和构建信息。
- 失败现场先保留,再清理;报告中不得粘贴真实令牌、密码和完整敏感字段。
- 备份恢复测试使用隔离库,恢复后以记录数、关键哈希、状态不变量和审计链完整性校验。
## 7. 待确认项
以下内容在得到正式口径前只测试“可配置与安全默认值”不自行设定政策安全阈值与开阀审批、SLO/RPO/RTO 数值、目标设备规模和上报频率、支付/合同/地图厂商、证据留存期、支持的 OS/浏览器最低版本、视频合规规则。