kindergarten_java/docs/test-logs/school/2026-03-14-school-e2e-test.md

192 lines
5.4 KiB
Markdown
Raw Normal View History

# 学校端 E2E 测试报告
**测试日期**: 2026-03-14
**测试环境**: Chrome 浏览器(有头模式)
**测试框架**: Playwright Test
---
## 测试结果汇总
| 测试模块 | 通过 | 失败 | 跳过 | 总计 |
|---------|------|------|------|------|
| 登录流程 | 4 | 1 | 0 | 5 |
| 仪表盘 | 6 | 0 | 0 | 6 |
| 班级管理 | 5 | 1 | 0 | 6 |
| 学生管理 | 0 | 6 | 0 | 6 |
| 教师管理 | 0 | 6 | 0 | 6 |
| 家长管理 | 0 | 6 | 0 | 6 |
| 校本课程包 | 0 | 7 | 0 | 7 |
| 任务管理 | 0 | 6 | 0 | 6 |
| 成长记录 | 0 | 6 | 0 | 6 |
| 通知管理 | 0 | 6 | 0 | 6 |
| 系统设置 | 0 | 6 | 0 | 6 |
| 退出登录 | 0 | 6 | 0 | 6 |
| 完整流程 | 0 | 1 | 0 | 1 |
| **总计** | **15** | **61** | **0** | **76** |
---
## 通过的测试用例
### ✅ 登录流程 (4/5)
- 学校端登录成功
- 记住登录状态
- 错误密码登录失败
- 账号不存在登录失败
### ✅ 仪表盘功能 (6/6)
- 验证仪表盘页面加载
- 验证统计数据卡片显示
- 验证快捷操作入口
- 验证最近活动或通知
- 验证侧边栏导航菜单
- 验证用户信息区域显示
- 截图保存仪表盘状态
### ✅ 班级管理 (5/6)
- 测试 1: 访问班级管理页面
- 测试 3: 查看班级详情
- 测试 4: 编辑班级
- 测试 5: 班级筛选功能
- 测试 6: 删除班级
---
## 失败的测试用例
### ❌ 登录流程 (1 失败)
- **验证跳转到正确的仪表盘页面** - URL 验证超时,实际已跳转到学校端但路径验证失败
### ❌ 班级管理 (1 失败)
- **测试 2: 创建班级** - 选择年级下拉框超时,页面元素定位失败
### ❌ 学生管理 (6 失败)
- 所有测试失败,原因:菜单文本不匹配(使用了"幼儿管理"而非实际的"学生管理"
### ❌ 其他模块 (54 失败)
- 教师管理、家长管理、校本课程包、任务管理、成长记录、通知管理、系统设置、退出登录、完整流程
- 主要原因:前置测试失败导致后续测试无法执行,以及菜单文本不匹配
---
## 问题分析
### 1. 菜单文本不匹配
实际菜单结构与测试假设不符:
| 测试假设 | 实际菜单文本 |
|---------|-------------|
| 幼儿管理 | 学生管理 |
| 任务管理 | 阅读任务 |
| 成长记录 | 成长档案 |
| 课程管理 | 课程管理 (正确) |
| 通知管理 | 无此菜单项 |
**实际菜单结构**(学校端 LayoutView.vue
- **人员管理**(二级菜单)
- 教师管理
- 学生管理
- 家长管理
- 班级管理
- **教学管理**(二级菜单)
- 课程管理
- 校本课程包
- 课程排期
- 阅读任务
- 任务模板
- 课程反馈
- **数据中心**(二级菜单)
- 数据报告
- 成长档案
- **系统管理**(二级菜单)
- 套餐管理
- 操作日志
- 系统设置
### 2. 二级菜单需要先展开
测试需要先点击一级菜单(如"人员管理")展开后,才能点击二级菜单项。
### 3. URL 验证过于严格
登录后的 URL 验证使用了严格的路径匹配,但实际路由可能有所不同。
---
## 修复进度
### 已修复
1. ✅ 学校端登录 helpers.ts - 放宽 URL 验证
2. ✅ 登录测试 01-login.spec.ts - 使用正确的页面元素验证
3. ✅ 仪表盘测试 02-dashboard.spec.ts - 使用正确的标题验证
4. ✅ 学生管理 04-students.spec.ts - 更新菜单文本为"人员管理" → "学生管理"
### 待修复
1. ❌ 班级管理 03-classes.spec.ts - 修复年级选择器定位
2. ❌ 教师管理 05-teachers.spec.ts - 更新菜单文本
3. ❌ 家长管理 06-parents.spec.ts - 更新菜单文本
4. ❌ 校本课程包 07-school-courses.spec.ts - 更新菜单文本
5. ❌ 任务管理 08-tasks.spec.ts - 更新菜单文本为"教学管理" → "阅读任务"
6. ❌ 成长记录 09-growth.spec.ts - 更新菜单文本为"数据中心" → "成长档案"
7. ❌ 通知管理 10-notifications.spec.ts - 该功能菜单项不存在
8. ❌ 系统设置 11-settings.spec.ts - 更新菜单文本
9. ❌ 退出登录 99-logout.spec.ts - 修复登录依赖
10. ❌ 完整流程 school-full-flow.spec.ts - 修复所有菜单文本
---
## 测试截图位置
所有测试截图保存在以下目录:
```
reading-platform-frontend/test-results/
├── school-01-login-学校端登录流程/
│ └── *.png (测试失败截图)
├── school-02-dashboard-学校端仪表盘功能/
│ └── *.png (测试截图)
├── school-03-classes-学校端班级管理功能/
│ └── *.png (测试失败截图)
└── ...
```
---
## 下一步行动
1. **更新所有测试文件的菜单文本** - 使用正确的菜单名称
2. **添加二级菜单展开逻辑** - 在点击二级菜单前先展开一级菜单
3. **移除不存在的功能测试** - 如"通知管理"
4. **修复元素定位问题** - 使用更稳定的选择器
5. **重新运行完整测试套件** - 验证所有修复
---
## 测试命令
```bash
# 运行所有学校端测试(有头模式)
cd reading-platform-frontend
npx playwright test tests/e2e/school/ --headed
# 运行单个测试文件
npx playwright test tests/e2e/school/01-login.spec.ts --headed
# 无头模式CI 环境)
npx playwright test tests/e2e/school/
# 生成 HTML 报告
npx playwright test tests/e2e/school/ --reporter=html
npx playwright show-report
```
---
## 测试账号
| 角色 | 账号 | 密码 |
|------|------|------|
| 学校端 | school1 | 123456 |
---
**报告生成时间**: 2026-03-14