3.6 KiB
3.6 KiB
EveryPublish 网页端测试报告(检查点①)
日期:2026-08-20 · 范围:阶段一网页端 D1-D7 交付 · 结论:核心链路全部通过,可进入用户验收
一、测试概况
| 项 | 结果 |
|---|---|
| Go 单元+集成测试 | ✅ 全绿(auth 4 项、task 状态机 4 项、API 集成 4 场景、WSS 全链路 1 场景) |
| TypeScript 类型检查 | ✅ tsc --noEmit 0 错误 |
| 前端生产构建 | ✅ pnpm build 成功(仅 chunk 体积提示,非错误) |
| 手动链路测试 | ✅ 24 项断言 24 通过(含 3 项环境/断言修正后复测通过) |
| 断线重连兜底 | ✅ 下线不丢任务、重连 1 秒内自动补发 |
二、六条核心链路测试结果
| # | 链路 | 关键断言 | 结果 |
|---|---|---|---|
| 1 | 注册登录 | 注册 200 / 重复邮箱 409 / 错误密码 401 / 刷新轮换后旧 refresh 401 / me 查询 | ✅ |
| 2 | 工作空间 | 创建 / 改名 | ✅ |
| 3 | 素材直传 | 上传 sha256 / 同文件去重 dedup=true / 直链一次 200 二次 404(一次性) | ✅ |
| 4 | 账号绑定 | 新增→bind→challenge 推送→扫码→active(绑定到设备) | ✅ |
| 5 | 任务全生命周期 | 创建→提交→审核→下发→执行→success;驳回→rejected→重提;取消 | ✅ |
| 6 | 成员协作 | 邀请→加入→角色 operator 生效 | ✅ |
| 7 | 审计 | auth.login / task.create 等动作埋点落库、按动作筛选 | ✅ |
| 8 | 权限 | 普通用户访问 admin API = 403;admin 账号 = 200 | ✅ |
三、发现的问题与处理
| 问题 | 类型 | 处理 |
|---|---|---|
| 假执行器未绑定到测试工作空间(导致绑定/下发无设备) | 测试环境 | 每工作空间独立假执行器实例;非代码缺陷 |
审计断言用 =1 而实际多记录 |
测试脚本 | 修正断言为存在性;审计功能正常 |
| 下发器 ack 竞态(先推后写库) | 代码缺陷 | 已修复:先落库 dispatched 再推送(D4 已改) |
| 服务器异常退出残留 online 状态 | 代码缺陷 | 已修复:启动自愈重置 offline |
| 8080 被 nginx 占用 | 环境 | 后端改用 :8090 |
四、用户验收清单(请您逐项验证)
- 打开 http://127.0.0.1:3003/login/index 注册新账号并登录(应进入工作台)。
- 工作台:看到 Agent 设备(在线/离线)与最近任务实时状态。
- 账号管理:添加账号 → 点「绑定」→ 弹窗等待 → 客户端扫码后自动变「已绑定」(无客户端时可跳过,观察「绑定中」状态)。
- 素材库:上传视频 → 列表出现,重复上传同一文件应提示去重。
- 发布管理 → 新建发布:四步向导选择素材/账号/填内容 → 创建草稿。
- 任务列表:草稿「提交审核」→ 审核中心「通过」→ 状态变绿「发布成功」(需在线客户端)。
- 成员管理:邀请一个邮箱 → 生成链接 → 复制。
- 挑战中心 / 通知 / 审计:数据可查看、操作可用。
- 设置 → Agent 设备:可吊销设备(吊销后设备下线)。
- 退出登录 → 重新登录(令牌刷新正常)。
五、环境与运行状态
- 后端 Go 服务:http://127.0.0.1:8090(
/health200) - 前端 dev:http://127.0.0.1:3003(生产构建已通过,
apps/web/dist/) - MySQL(Docker everypublish-mysql)+ Redis(本机)运行中
- 假执行器:demo 工作空间 + tester1 工作空间各一台(模拟客户端)
六、结论
网页端阶段一交付满足《docs/delivery-plan.md》§7 第 1-5 项验收。建议进入用户验收;确认通过后开始阶段二(Windows 客户端 D8-D11)。