video-shuoshan/test-report.md
zyc ffe92f7b15 Initial commit: 即梦视频生成平台
- web/: React + Vite + TypeScript 前端
- backend/: Django + DRF + SimpleJWT 后端
- prototype/: HTML 设计原型
- docs/: PRD 和设计评审文档
- test: 单元测试 + E2E 极限测试
2026-03-13 09:59:33 +08:00

8.4 KiB
Raw Blame History

测试报告

测试结论: ALL_PASSED

Bug 路由摘要

  • CODE_BUG: 0 个(路由到开发 Agent
  • DESIGN_BUG: 0 个(路由到设计 Agent
  • REQUIREMENT_BUG: 0 个(路由到产品 Agent

测试概要

  • 单元测试: 224 通过 / 0 失败9 个测试文件)
  • E2E 测试: 49 通过 / 0 失败3 个测试文件)
  • 视觉质量检查: 7 通过 / 0 失败
  • 后端 API 验证: 12 端点全部通过
  • Django 系统检查: 0 问题
  • 数据库迁移: 完整

通过的测试

单元测试224 个)

既有测试文件(已更新适配 Phase 3

  • test/unit/apiClient.test.ts — API 客户端测试authApi、videoApi、adminApi、profileApi
  • test/unit/phase2Components.test.tsx — 组件类型测试(已更新为秒数配额格式)
  • test/unit/auth.test.ts — 认证流程测试
  • test/unit/videoGeneration.test.ts — 视频生成测试
  • test/unit/adminPanel.test.ts — 管理面板测试
  • test/unit/uiComponents.test.tsx — UI 组件测试
  • test/unit/routerSetup.test.tsx — 路由配置测试
  • test/unit/phase2Features.test.ts — Phase 2 功能测试

Phase 3 新增测试62 个test/unit/phase3Features.test.ts

  • 秒数配额系统验证7 个)— Quota 类型字段、默认值 600s/6000s、使用量追踪
  • 管理后台多页面布局验证7 个)— AdminLayout 侧边栏、4 个导航链接、折叠功能
  • 仪表盘页面验证8 个)— ECharts 图表、统计卡片、趋势数据、骨架屏加载
  • 用户管理页面验证6 个)— 用户表格、搜索过滤、配额编辑、状态切换
  • 消费记录页面验证5 个)— 记录表格、日期范围过滤、CSV 导出、分页
  • 系统设置页面验证4 个)— 全局配额默认值、公告管理、开关切换
  • 个人中心页面验证8 个)— 仪表盘图表、进度条、趋势图、消费记录列表
  • 后端 API 路由验证4 个)— profile 和 admin URL 配置完整
  • QuotaConfig 模型验证3 个)— 单例模式、默认值
  • ProtectedRoute 管理员守卫1 个)— requireAdmin 属性
  • UserInfoBar 导航2 个)— 秒数显示、个人中心链接
  • ECharts 集成3 个)— echarts-for-react 依赖、图表组件配置
  • 路由配置4 个)— 嵌套路由、重定向、通配符

E2E 测试49 个)

既有 E2E 测试26 个)

  • test/e2e/video-generation.spec.ts — 视频生成页 P0/P1/P2 验收 + Sidebar14 个)
  • test/e2e/auth-flow.spec.ts — 认证流程注册、登录、登出、路由保护12 个)

Phase 3 新增 E2E 测试23 个test/e2e/phase3-admin-profile.spec.ts

个人中心页面7 个)

  • 已认证用户可访问个人中心
  • 显示消费概览(今日额度、本月额度)
  • 显示消费趋势(近 7 天 / 近 30 天切换)
  • 显示消费记录(新用户显示"暂无记录"
  • 返回首页导航
  • 退出按钮可见
  • 未认证用户重定向到登录页

UserInfoBar 配额与导航2 个)

  • 显示秒数格式配额(剩余: Xs/Xs(日)
  • 个人中心链接导航到 /profile

管理后台权限控制6 个)

  • 非管理员用户无法访问 /admin/dashboard
  • 非管理员用户无法访问 /admin/users
  • 非管理员用户无法访问 /admin/records
  • 非管理员用户无法访问 /admin/settings
  • /admin 重定向到 /admin/dashboard
  • 未认证访问 /admin 重定向到 /login

后端 API 集成7 个)

  • GET /api/v1/auth/me 返回秒数配额daily_seconds_limit=600, monthly_seconds_limit=6000
  • GET /api/v1/profile/overview 返回消费数据7 天趋势)
  • GET /api/v1/profile/overview 支持 30 天周期
  • GET /api/v1/profile/records 返回分页记录
  • POST /api/v1/video/generate 消耗秒数seconds_consumed=10, remaining=590
  • 管理端点对非管理员返回 403
  • 未认证请求返回 401

趋势切换1 个)

  • 点击 30 天标签更新趋势周期

后端 API 验证curl 直接测试)

  • POST /api/v1/auth/register — 201 Created
  • POST /api/v1/auth/login — 200 OK
  • GET /api/v1/auth/me — 返回秒数配额
  • GET /api/v1/profile/overview?period=7d — 7 天趋势
  • GET /api/v1/profile/overview?period=30d — 30 天趋势
  • GET /api/v1/profile/records — 分页记录
  • GET /api/v1/admin/stats — 管理统计数据
  • GET /api/v1/admin/users — 用户列表(分页、搜索)
  • GET /api/v1/admin/records — 消费记录(日期过滤)
  • GET /api/v1/admin/settings — 系统设置
  • POST /api/v1/video/generate — 202 Acceptedseconds_consumed=10
  • Django system check: 0 issues, migrations up-to-date

失败的测试Bug 列表)

视觉质量检查

检查项 状态 说明
登录页面 暗色主题,表单完整,注册链接可见
主页面(已登录) 显示"剩余: 600s/600s(日)"秒数配额,个人中心和管理后台入口可见
管理后台 — 仪表盘 侧边栏 4 个导航项统计卡片用户数、今日消费、本月消费、活跃用户ECharts 折线图和柱状图
管理后台 — 用户管理 用户表格含秒数配额列,搜索过滤,分页功能
管理后台 — 消费记录 记录表格含时间/用户/秒数/描述/模式/状态列,日期范围过滤,导出 CSV 按钮
管理后台 — 系统设置 全局默认配额600s/6000s系统公告开关和文本输入
个人中心 仪表盘图表0s/600s今日/本月额度卡片含进度条消费趋势近7天/近30天消费记录暂无记录

视觉截图文件

  • screenshot-login-phase3.png — 登录页
  • screenshot-main-page-phase3.png — 主页面
  • screenshot-admin-dashboard-phase3.png — 管理仪表盘
  • screenshot-admin-users-phase3.png — 用户管理
  • screenshot-admin-records-phase3.png — 消费记录
  • screenshot-admin-settings-phase3.png — 系统设置
  • screenshot-profile-phase3.png — 个人中心

上一轮 Bug 修复验证 — 全部

原 Bug 状态 验证方式
API 拦截器在登录端点 401 重定向 已修复 api.ts:24-25 排除 /auth/login/auth/register/auth/token/refresh 端点
音频类型死代码types/store/components 已修复 源码审查确认 UploadedFile.type'image' | 'video',音频分支已全部移除
GenerationCard 硬编码模型名 已修复 GenerationCard.tsx:54 使用 task.model 动态渲染
无文件大小验证 已修复 UniversalUpload、InputBar、KeyframeUpload 均有 20MB/100MB 限制

Phase 3 功能覆盖总结

功能模块 前端 后端 API 单元测试 E2E 测试 视觉检查
秒数配额系统
管理后台侧边栏
仪表盘ECharts
用户管理
消费记录
系统设置
个人中心
权限控制
CSV 导出

测试环境

  • 前端: Vite 5 + React 18 + TypeScript
  • 后端: Django 4.2 + DRF + SimpleJWT
  • 单元测试: Vitest 3.x (jsdom)
  • E2E 测试: Playwright 1.50
  • 数据库: SQLite (开发环境)
  • Node.js: v22+
  • Python: 3.12+

测试文件清单

文件 类型 测试数
test/unit/inputBarStore.test.ts Store 单元测试 31
test/unit/generationStore.test.ts Store 单元测试 15
test/unit/authStore.test.ts Store 单元测试 15
test/unit/apiClient.test.ts API 客户端测试 20
test/unit/phase2Components.test.tsx Phase 2 组件测试 17
test/unit/designTokens.test.ts CSS/设计规范测试 30
test/unit/components.test.tsx 组件渲染测试 16
test/unit/bugfixVerification.test.ts Bug 修复验证 15
test/unit/phase3Features.test.ts Phase 3 功能测试 62
test/e2e/video-generation.spec.ts E2E 视频生成 14
test/e2e/auth-flow.spec.ts E2E 认证流程 12
test/e2e/phase3-admin-profile.spec.ts E2E Phase 3 23
总计 270