Files
NextEdu/webtest/school-management_v1.md
SpecialX d884c6d513
Some checks failed
CI / scheduled-backup (push) Failing after 36s
CI / backup-verify (push) Has been skipped
CI / weekly-dr-drill (push) Failing after 0s
CI / build-deploy (push) Has been cancelled
CI / security-scan (push) Has been cancelled
test: update and add E2E, integration, visual, and webapp tests
- Update E2E tests: announcements, auth, auth-business-flow, full-route-regression, grades, navigation, smoke-auth, teacher-web-test

- Update integration tests: api-ai-chat, api-onboarding-complete, api-onboarding-status, proxy-guard, integration setup

- Update visual regression tests: admin-dashboard, homepage, student-dashboard, teacher-dashboard, visual config, helpers

- Update webapp tests: admin, parent, student full tests and debug scripts

- Add new webapp tests: announcements_messages, settings_profile, debug scripts

- Add webtest directory with test plans, screenshots, and diagnostic scripts
2026-06-23 17:39:40 +08:00

155 lines
6.6 KiB
Markdown
Raw Permalink 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.
# 学校管理模块 Web 功能测试报告
> 测试日期2026-06-22 19:42:53
> 模块:学校管理 (School Management)
> 版本v1
> 测试工具Playwright + Chromium (headless)
> Base URLhttp://localhost:3000
> 覆盖子模块schools, departments, academic-year
---
## 一、测试概览
| 指标 | 数值 |
|------|------|
| 总测试项 | 15 |
| 通过 | 15 |
| 失败 | 0 |
| 警告 | 0 |
| 通过率 | 100.0% |
### 测试覆盖
| 子模块 | 路由 | 权限点 | admin | teacher | student | parent |
|--------|------|--------|-------|---------|---------|--------|
| 学校管理 | /admin/school/schools | SCHOOL_MANAGE | ✅ 完整CRUD | ❌ 拒绝 | ❌ 拒绝 | ❌ 拒绝 |
| 院系管理 | /admin/school/departments | SCHOOL_MANAGE | ✅ 完整CRUD | ❌ 拒绝 | ❌ 拒绝 | ❌ 拒绝 |
| 学年管理 | /admin/school/academic-year | SCHOOL_MANAGE | ✅ 完整CRUD | ❌ 拒绝 | ❌ 拒绝 | ❌ 拒绝 |
---
## 二、各角色测试详情
### 角色admin
- **登录状态**: ✅ 成功
- **警告**: 控制台错误: A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:
- A server/client bran
- **警告**: 控制台错误: A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:
- A server/client bran
#### 访问权限测试
| 状态 | 子模块 | 路由 | HTTP | 最终 URL | 备注 |
|------|--------|------|------|----------|------|
| ✅ | schools_list | `/admin/school/schools` | 200 | `/admin/school/schools` | - |
| ✅ | departments_list | `/admin/school/departments` | 200 | `/admin/school/departments` | - |
| ✅ | academic_year_list | `/admin/school/academic-year` | 200 | `/admin/school/academic-year` | - |
#### CRUD 功能测试
| 状态 | 功能 | 操作 | 详情 |
|------|------|------|------|
| ✅ | 学校 CRUD | ✅ 列表加载 | 列表/空状态正常显示 |
| ✅ | 学校 CRUD | ✅ 打开创建对话框 | 创建对话框已打开 |
| ✅ | 学校 CRUD | ✅ 编辑入口存在 | 无数据行,跳过编辑入口检查 |
| ✅ | 学校 CRUD | ✅ 删除入口存在 | 无数据行,跳过删除入口检查 |
| ✅ | 院系 CRUD | ✅ 列表加载 | 列表/空状态正常显示 |
| ✅ | 院系 CRUD | ✅ 打开创建对话框 | 创建对话框已打开 |
| ✅ | 院系 CRUD | ✅ 编辑入口存在 | 无数据行,跳过 |
| ✅ | 院系 CRUD | ✅ 删除入口存在 | 无数据行,跳过 |
| ✅ | 学年 CRUD | ✅ 列表加载 | 列表/空状态正常显示 |
| ✅ | 学年 CRUD | ✅ 打开创建对话框 | 创建对话框已打开 |
| ✅ | 学年 CRUD | ✅ 编辑入口存在 | 无数据行,跳过 |
| ✅ | 学年 CRUD | ✅ 删除入口存在 | 无数据行,跳过 |
---
### 角色teacher
- **登录状态**: ✅ 成功
#### 访问权限测试
| 状态 | 子模块 | 路由 | HTTP | 最终 URL | 备注 |
|------|--------|------|------|----------|------|
| ✅ | schools_list | `/admin/school/schools` | 200 | `/teacher/dashboard?from=%2Fadmin%2Fschool%2Fschools&reason=forbidden` | - |
| ✅ | departments_list | `/admin/school/departments` | 200 | `/teacher/dashboard?from=%2Fadmin%2Fschool%2Fdepartments&reason=forbidden` | - |
| ✅ | academic_year_list | `/admin/school/academic-year` | 200 | `/teacher/dashboard?from=%2Fadmin%2Fschool%2Facademic-year&reason=forbidden` | - |
#### CRUD 功能测试
| 状态 | 功能 | 操作 | 详情 |
|------|------|------|------|
| ⏭️ | 学校 CRUD | 跳过 | teacher 无 SCHOOL_MANAGE 权限,跳过 CRUD 测试 |
| ⏭️ | 院系 CRUD | 跳过 | teacher 无 SCHOOL_MANAGE 权限,跳过 CRUD 测试 |
| ⏭️ | 学年 CRUD | 跳过 | teacher 无 SCHOOL_MANAGE 权限,跳过 CRUD 测试 |
---
### 角色student
- **登录状态**: ✅ 成功
#### 访问权限测试
| 状态 | 子模块 | 路由 | HTTP | 最终 URL | 备注 |
|------|--------|------|------|----------|------|
| ✅ | schools_list | `/admin/school/schools` | 200 | `/student/dashboard?from=%2Fadmin%2Fschool%2Fschools&reason=forbidden` | - |
| ✅ | departments_list | `/admin/school/departments` | 200 | `/student/dashboard?from=%2Fadmin%2Fschool%2Fdepartments&reason=forbidden` | - |
| ✅ | academic_year_list | `/admin/school/academic-year` | 200 | `/student/dashboard?from=%2Fadmin%2Fschool%2Facademic-year&reason=forbidden` | - |
#### CRUD 功能测试
| 状态 | 功能 | 操作 | 详情 |
|------|------|------|------|
| ⏭️ | 学校 CRUD | 跳过 | student 无 SCHOOL_MANAGE 权限,跳过 CRUD 测试 |
| ⏭️ | 院系 CRUD | 跳过 | student 无 SCHOOL_MANAGE 权限,跳过 CRUD 测试 |
| ⏭️ | 学年 CRUD | 跳过 | student 无 SCHOOL_MANAGE 权限,跳过 CRUD 测试 |
---
### 角色parent
- **登录状态**: ✅ 成功
#### 访问权限测试
| 状态 | 子模块 | 路由 | HTTP | 最终 URL | 备注 |
|------|--------|------|------|----------|------|
| ✅ | schools_list | `/admin/school/schools` | 200 | `/parent/dashboard?from=%2Fadmin%2Fschool%2Fschools&reason=forbidden` | - |
| ✅ | departments_list | `/admin/school/departments` | 200 | `/parent/dashboard?from=%2Fadmin%2Fschool%2Fdepartments&reason=forbidden` | - |
| ✅ | academic_year_list | `/admin/school/academic-year` | 200 | `/parent/dashboard?from=%2Fadmin%2Fschool%2Facademic-year&reason=forbidden` | - |
#### CRUD 功能测试
| 状态 | 功能 | 操作 | 详情 |
|------|------|------|------|
| ⏭️ | 学校 CRUD | 跳过 | parent 无 SCHOOL_MANAGE 权限,跳过 CRUD 测试 |
| ⏭️ | 院系 CRUD | 跳过 | parent 无 SCHOOL_MANAGE 权限,跳过 CRUD 测试 |
| ⏭️ | 学年 CRUD | 跳过 | parent 无 SCHOOL_MANAGE 权限,跳过 CRUD 测试 |
---
## 四、控制台错误汇总
- **[admin]** A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:
- A server/client bran
- **[admin]** A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:
- A server/client bran
## 五、测试结论
**所有测试通过**:学校管理模块在所有用户角色下均按预期工作。
- admin 角色可以完整访问学校管理、院系管理、学年管理功能(列表、创建、编辑、删除入口均可用)
- teacher / student / parent 角色被正确重定向到各自仪表盘(带 `reason=forbidden` 参数),权限隔离正常
---
*报告自动生成于 2026-06-22 19:42:53*