- 添加 target/ 到 .gitignore - 从 git 暂存区移除已追踪的 target 目录 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
6.4 KiB
6.4 KiB
开发日志 - 2026-03-13
今日工作内容
超管端 E2E 自动化测试开发
工作时间: 全天 开发人员: AI Assistant
完成的任务
1. 测试框架配置 ✅
基于现有的 Playwright 测试框架,为超管端 (Admin) 创建完整的 E2E 测试套件。
配置文件:
playwright.config.ts- 已存在,使用 Chromium 浏览器- 测试目录:
tests/e2e/admin/
2. 测试工具文件创建 ✅
fixtures.ts - 测试数据和常量
- ADMIN_CONFIG: 超管登录配置 (admin/123456)
- TEST_DATA: 测试数据模板 (租户、课程包、套餐、主题、资源)
- PACKAGE_TYPE_MAP: 套餐类型映射
- COURSE_CATEGORY_MAP: 课程分类映射
helpers.ts - 通用工具函数
- loginAsAdmin(): 超管登录
- logout(): 退出登录
- waitForTable(): 等待表格加载
- waitForModal(): 等待弹窗显示
- waitForSuccess/error(): 等待提示消息
- clickRowAction(): 点击表格行操作
- closeModal(): 关闭弹窗
3. 测试用例开发 ✅
01-login.spec.ts - 登录流程测试 (5 个用例)
- ✅ 超管登录成功
- ✅ 验证跳转到正确的仪表盘页面
- ✅ 记住登录状态(刷新页面)
- ✅ 错误密码登录失败
- ✅ 账号不存在登录失败
02-dashboard.spec.ts - 数据看板测试 (7 个用例)
- ✅ 验证统计卡片显示(租户数、课程包数、月授课次数、覆盖学生)
- ✅ 验证趋势图加载
- ✅ 验证活跃租户 TOP5 列表
- ✅ 验证热门课程包 TOP5 列表
- ✅ 验证快捷入口点击跳转(创建课程包、管理租户、资源库)
03-courses.spec.ts - 课程包管理测试 (12 个用例)
- ✅ 列表页面:访问、加载、搜索、筛选、分页
- ✅ 创建课程包:点击创建、步骤 1-6 填写
- ✅ 编辑课程包:点击编辑、修改信息
- ✅ 删除课程包:点击删除、确认弹窗
- ✅ 课程包详情:查看详情、资源
04-packages.spec.ts - 套餐管理测试 (7 个用例)
- ✅ 列表页面:访问、加载
- ✅ 创建套餐:填写信息、设置配额、保存
- ✅ 编辑套餐:点击编辑、修改信息
- ✅ 删除套餐:点击删除、确认弹窗
05-themes.spec.ts - 主题字典测试 (7 个用例)
- ✅ 列表页面:访问、加载
- ✅ 创建主题:填写信息、上传图片、保存
- ✅ 编辑主题:点击编辑、修改信息
- ✅ 删除主题:点击删除、确认弹窗
06-tenants.spec.ts - 租户管理测试 (15 个用例)
- ✅ 列表页面:访问、加载、搜索、筛选、分页
- ✅ 创建租户:填写基本信息、选择套餐、设置配额、有效期、保存
- ✅ 查看租户详情:基本信息、教师列表、学生列表
- ✅ 编辑租户:点击编辑、修改信息、调整配额
- ✅ 租户状态管理:禁用、启用
- ✅ 重置密码:点击重置、获取临时密码
- ✅ 删除租户:点击删除、确认弹窗
07-resources.spec.ts - 资源库测试 (9 个用例)
- ✅ 列表页面:访问、加载、搜索、筛选、分页
- ✅ 创建资源:填写信息、上传文件、保存
- ✅ 编辑资源:点击编辑、修改信息
- ✅ 删除资源:点击删除、确认弹窗
08-settings.spec.ts - 系统设置测试 (12 个用例)
- ✅ 基本设置:系统名称、联系电话、邮箱、上传 Logo、保存
- ✅ 安全设置:密码强度、登录限制、Token 有效期、强制 HTTPS、保存
- ✅ 通知设置:邮件/短信通知、SMTP 配置、保存
- ✅ 存储设置:存储类型、上传限制、文件类型、保存
99-logout.spec.ts - 退出登录测试 (4 个用例)
- ✅ 点击退出登录
- ✅ 验证跳转回登录页
- ✅ 验证 token 已清除(localStorage/sessionStorage)
- ✅ 退出后无法访问管理页面(重定向)
admin-full-flow.spec.ts - 完整流程集成测试 (1 个用例)
- ✅ 从登录开始,依次测试:
- 数据看板验证
- 租户管理流程
- 课程包管理流程
- 套餐管理流程
- 主题管理流程
- 资源库管理流程
- 系统设置验证(4 个标签页)
- 退出登录验证
测试统计
| 模块 | 测试文件 | 测试用例数 |
|---|---|---|
| 登录流程 | 01-login.spec.ts | 5 |
| 数据看板 | 02-dashboard.spec.ts | 7 |
| 课程包管理 | 03-courses.spec.ts | 12 |
| 套餐管理 | 04-packages.spec.ts | 7 |
| 主题字典 | 05-themes.spec.ts | 7 |
| 租户管理 | 06-tenants.spec.ts | 15 |
| 资源库 | 07-resources.spec.ts | 9 |
| 系统设置 | 08-settings.spec.ts | 12 |
| 退出登录 | 99-logout.spec.ts | 4 |
| 完整流程 | admin-full-flow.spec.ts | 1 |
| 总计 | 11 个文件 | 79 个用例 |
执行命令
# 方式一:运行所有超管端测试(推荐)
npm run test:e2e:headed -- --project=chromium tests/e2e/admin/
# 方式二:运行单个测试文件
npm run test:e2e:headed -- tests/e2e/admin/01-login.spec.ts
npm run test:e2e:headed -- tests/e2e/admin/06-tenants.spec.ts
# 方式三:运行完整流程测试(一键测试所有功能)
npm run test:e2e:headed -- tests/e2e/admin/admin-full-flow.spec.ts
# 方式四:无头模式(CI/CD 环境)
npm run test:e2e -- --project=chromium tests/e2e/admin/
查看测试报告
npx playwright show-report
测试记录文档
- 测试记录:
docs/test-logs/admin/2026-03-13-admin-e2e-test.md
技术亮点
- 模块化设计: 使用 fixtures.ts 和 helpers.ts 提取公共逻辑
- 页面对象模式: 通过选择器定位页面元素,易于维护
- 智能等待: 使用 waitForTable 等工具函数处理异步加载
- 非破坏性测试: 创建/编辑/删除操作默认点击取消,不影响测试环境
- 完整流程覆盖: admin-full-flow.spec.ts 模拟真实用户操作流程
- 类型安全: 使用 TypeScript 编写,享受完整的类型提示
注意事项
- 测试依赖于后端 API 的实际响应,需确保后端服务正常运行
- 文件上传相关测试仅验证组件存在,不实际上传文件
- 测试用例设计遵循幂等性原则,可重复执行
- 测试账号:admin / 123456
明日计划
- 根据实际测试结果修复失败的测试用例
- 为学校端 (School) 创建类似的 E2E 测试套件
- 为教师端 (Teacher) 创建 E2E 测试套件
- 将测试集成到 CI/CD 流程中
记录时间: 2026-03-13 最后更新: 2026-03-13