Files

4.9 KiB
Raw Permalink Blame History

Sense 独立纵切验收

本验收只启动 Sense、临时 PostgreSQL 17、测试用 ONVIF/RTSP 夹具和独立 MediaMTX;不启动 Brain 或 Bell。测试凭据在每次运行时随机生成,只通过子进程环境和系统临时目录传递,测试结束后清理。

自动化入口

从仓库根目录执行:

& Sense\tests\compatibility\run-static-regression.ps1
& Sense\tests\e2e\run-isolated-e2e.ps1

隔离 E2E 默认使用 D:\pgsql17\bin、已审核的 C:\Users\ila20\Desktop\mediamtx\mediamtx.exe 和本机 Chrome。路径不同时使用参数显式指定。运行数据、数据库、构建副本、浏览器截图和日志全部位于系统临时目录;只有排错时才使用 -KeepTemporary,其中可能含运行时秘密,必须按敏感数据保护并及时清理。

E2E 入口从 PowerShell 7 调用时会自动转入 Windows PowerShell 5.1 执行本地 HTTP 回归;源码打包仍显式使用冻结要求的 PowerShell 7。这样与 Windows 交付脚本的宿主一致,也避开当前机器 PowerShell 7 HTTP 客户端对本地 Go/MediaMTX 响应的兼容问题。

默认入口只复制 Git 已跟踪的 Sense/ 源码到系统临时目录,因此正常开发工作区中已有的 node_modules、dist、本地配置、日志和其他未跟踪文件不会进入验收副本。-PreparedPackageRoot 也会先把指定包复制到本次临时目录,运行时配置、浏览器脚本、截图和日志不会写回原包或源码树。

Sense 进程提前退出或 HTTP 就绪超时时,脚本返回非零并输出阶段、退出状态、临时日志位置和经过过滤、截断的日志摘要;数据库连接、密码、token、Cookie、JWT 和 credential key 不得出现在诊断中。默认无论成功或失败都会清理所属进程和临时目录;-KeepTemporary 仅用于排错,仍会停止进程,但保留目录可能包含随机运行时秘密,必须限制访问并在排错后安全删除。

为避免 Windows 首次扫描临时复制的 MediaMTX 二进制占用产品固定的就绪窗口,E2E 会先在同一动态端口和临时配置上启动一次包内 MediaMTX,确认 Control API 可用并完全停止,再由 Sense 以 managed 模式启动并完成生命周期验收。预检失败会单独报告 MediaMTX preflight 阶段,不会被误报为 Sense HTTP 超时。

HTTP、RTSP、HLS、Control API 和 ONVIF 动态端口使用 TCP 绑定探测;WebRTC 本地 UDP 端口必须使用 UDP socket 实际绑定探测,不得用 TCP 空闲结果代替,避免落入 Windows 的 UDP 排除或占用范围。

回归矩阵

范围 自动化证据 判定
GoAdmin 来源与复用 检查冻结 commit、MIT 文件、Cobra、迁移、Gin Router、JWT、动态 Router/Store/Axios/Layout/权限入口 必须通过
空白 PostgreSQL 17 临时集群执行完整迁移,核对迁移版本和 capabilities JSONB 必须通过
登录与 RBAC 一次性安全初始化、免验证码登录、未认证访问拒绝、管理员权限链 必须通过
中文与请求白名单 中文设备/安装位置/区域往返;未知凭据字段返回 400 必须通过
凭据边界 ONVIF/RTSP 分用途写入;API、媒体路径、日志和数据库均不出现明文 必须通过
ONVIF 与 RTSP 测试 ONVIF 对每个 SOAP 操作强制并校验 Digest;RTSP OPTIONS 验证合成源 必须通过
MediaMTX 独立端口、回环 Control API、按需路径、合成视频消费者和安全播放地址 必须通过
实时监看 创建短期播放会话并验证同源 wrapper 与浏览器可达地址 必须通过
区域配置 多边形保存;Profile 分辨率变化后自动标记需要重校准 必须通过
GoAdmin UI 外壳 Chrome 验证侧栏、顶部导航、标签页和五个 Sense 页面;无无关入口 必须通过
Windows 交付 临时副本按固定 Go/Node/pnpm 构建,生产启动、停止、冷启动路径恢复 必须通过
独立性 测试不连接 Brain/Bell,不写 contracts/ 或根级部署 必须通过

历史迁移裁决

  • 旧 explore 只提供需求与故障清单,不作为通过证据,也不复制其自研认证、RBAC、HTTP 外壳或业务实现。
  • 中文绑定、严格请求字段、Digest、凭据分离、Media 回环地址、按需拉流、冷启动恢复、区域重校准和 Windows 包必须由当前 dev 新基线重新运行。
  • 测试失败时保留失败证据并建立独立缺陷工单;本验收任务不修改产品实现以掩盖失败。

未验证边界

  • 客户现场真实 ONVIF 摄像机型号、固件差异、网络丢包和时钟偏差。
  • 客户全新 Windows 主机、生产数据库账号权限、防火墙和服务管理器。
  • 16 路及更高并发、长时间稳定性、硬件解码与实际带宽;16 路只是默认交付配额,不是代码硬上限。
  • Brain/Bell 契约、跨项目端到端事件和证据链,必须由后续协调工单验证。