Files
EveryPublish/docs/web-test-report.md
T

61 lines
3.6 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.
# 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 |
## 四、用户验收清单(请您逐项验证)
1. 打开 http://127.0.0.1:3003/login/index 注册新账号并登录(应进入工作台)。
2. 工作台:看到 Agent 设备(在线/离线)与最近任务实时状态。
3. 账号管理:添加账号 → 点「绑定」→ 弹窗等待 → 客户端扫码后自动变「已绑定」(无客户端时可跳过,观察「绑定中」状态)。
4. 素材库:上传视频 → 列表出现,重复上传同一文件应提示去重。
5. 发布管理 → 新建发布:四步向导选择素材/账号/填内容 → 创建草稿。
6. 任务列表:草稿「提交审核」→ 审核中心「通过」→ 状态变绿「发布成功」(需在线客户端)。
7. 成员管理:邀请一个邮箱 → 生成链接 → 复制。
8. 挑战中心 / 通知 / 审计:数据可查看、操作可用。
9. 设置 → Agent 设备:可吊销设备(吊销后设备下线)。
10. 退出登录 → 重新登录(令牌刷新正常)。
## 五、环境与运行状态
- 后端 Go 服务:http://127.0.0.1:8090(`/health` 200)
- 前端 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)。**