test: update and add E2E, integration, visual, and webapp tests
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

- 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
This commit is contained in:
SpecialX
2026-06-23 17:39:40 +08:00
parent f40ce0f560
commit d884c6d513
183 changed files with 19006 additions and 0 deletions

View File

@@ -0,0 +1,324 @@
{
"test_date": "2026-06-22 19:25:57",
"module": "仪表盘 (Dashboard)",
"version": "0.1.0",
"base_url": "http://localhost:3000",
"summary": {
"total": 20,
"passed": 20,
"failed": 0,
"warnings": 0
},
"roles": {
"admin": {
"role": "admin",
"url": "http://localhost:3000/admin/dashboard",
"login_success": true,
"page_status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/admin/dashboard",
"checks": [
{
"name": "页面内容非空",
"passed": true,
"detail": "内容长度 678338"
},
{
"name": "标题关键词匹配",
"passed": true,
"detail": "预期关键词: ['管理员', 'Admin', '仪表盘', 'Dashboard']"
},
{
"name": "统计卡片数量 (预期 4)",
"passed": true,
"detail": "实际: 16"
},
{
"name": "快捷操作链接 (预期 >= 7)",
"passed": true,
"detail": "实际: 14"
},
{
"name": "最近用户表格存在",
"passed": true,
"detail": "表格存在: True"
},
{
"name": "图表或空状态 (预期图表 2)",
"passed": true,
"detail": "图表: 0, 空状态: True"
}
],
"console_errors": [],
"screenshots": [
"dashboard_admin.png"
],
"errors": [],
"warnings": []
},
"teacher": {
"role": "teacher",
"url": "http://localhost:3000/teacher/dashboard",
"login_success": true,
"page_status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/dashboard",
"checks": [
{
"name": "页面内容非空",
"passed": true,
"detail": "内容长度 662101"
},
{
"name": "标题关键词匹配",
"passed": true,
"detail": "预期关键词: ['教师', 'Teacher', '仪表盘', 'Dashboard']"
},
{
"name": "统计卡片数量 (预期 4)",
"passed": true,
"detail": "实际: 5"
},
{
"name": "待办卡片存在",
"passed": true,
"detail": "待办区域: 8"
},
{
"name": "快捷链接存在: /teacher/homework/submissions",
"passed": true,
"detail": ""
},
{
"name": "快捷链接存在: /teacher/attendance/sheet",
"passed": true,
"detail": ""
},
{
"name": "快捷链接存在: /teacher/homework/assignments",
"passed": true,
"detail": ""
}
],
"console_errors": [],
"screenshots": [
"dashboard_teacher.png"
],
"errors": [],
"warnings": []
},
"student": {
"role": "student",
"url": "http://localhost:3000/student/dashboard",
"login_success": true,
"page_status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/student/dashboard",
"checks": [
{
"name": "页面内容非空",
"passed": true,
"detail": "内容长度 520955"
},
{
"name": "标题关键词匹配",
"passed": true,
"detail": "预期关键词: ['学生', 'Student', '仪表盘', 'Dashboard']"
},
{
"name": "统计卡片数量 (预期 5)",
"passed": true,
"detail": "实际: 6"
},
{
"name": "今日课表卡片",
"passed": true,
"detail": ""
},
{
"name": "作业卡片",
"passed": true,
"detail": ""
}
],
"console_errors": [],
"screenshots": [
"dashboard_student.png"
],
"errors": [],
"warnings": []
},
"parent": {
"role": "parent",
"url": "http://localhost:3000/parent/dashboard",
"login_success": true,
"page_status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/parent/dashboard",
"checks": [
{
"name": "页面内容非空",
"passed": true,
"detail": "内容长度 492448"
},
{
"name": "标题关键词匹配",
"passed": true,
"detail": "预期关键词: ['家长', 'Parent', '仪表盘', 'Dashboard']"
},
{
"name": "快捷入口链接: /parent/grades",
"passed": true,
"detail": ""
},
{
"name": "快捷入口链接: /parent/attendance",
"passed": true,
"detail": ""
},
{
"name": "快捷入口链接: /announcements",
"passed": true,
"detail": ""
},
{
"name": "快捷入口链接: /parent/leave",
"passed": true,
"detail": ""
},
{
"name": "孩子卡片区域",
"passed": true,
"detail": "检测到孩子相关内容: True"
}
],
"console_errors": [],
"screenshots": [
"dashboard_parent.png"
],
"errors": [],
"warnings": []
}
},
"redirect_tests": [
{
"role": "admin",
"url": "http://localhost:3000/dashboard",
"expected_redirect": "/admin/dashboard",
"final_url": "http://localhost:3000/admin/dashboard",
"passed": true,
"error": null
},
{
"role": "teacher",
"url": "http://localhost:3000/dashboard",
"expected_redirect": "/teacher/dashboard",
"final_url": "http://localhost:3000/teacher/dashboard",
"passed": true,
"error": null
},
{
"role": "student",
"url": "http://localhost:3000/dashboard",
"expected_redirect": "/student/dashboard",
"final_url": "http://localhost:3000/student/dashboard",
"passed": true,
"error": null
},
{
"role": "parent",
"url": "http://localhost:3000/dashboard",
"expected_redirect": "/parent/dashboard",
"final_url": "http://localhost:3000/parent/dashboard",
"passed": true,
"error": null
}
],
"cross_role_tests": [
{
"role": "admin",
"forbidden_route": "/teacher/dashboard",
"final_url": "http://localhost:3000/admin/dashboard?from=%2Fteacher%2Fdashboard&reason=forbidden",
"passed": true,
"error": "重定向回 /admin/dashboard拒绝访问"
},
{
"role": "admin",
"forbidden_route": "/student/dashboard",
"final_url": "http://localhost:3000/admin/dashboard?from=%2Fstudent%2Fdashboard&reason=forbidden",
"passed": true,
"error": "重定向回 /admin/dashboard拒绝访问"
},
{
"role": "admin",
"forbidden_route": "/parent/dashboard",
"final_url": "http://localhost:3000/admin/dashboard?from=%2Fparent%2Fdashboard&reason=forbidden",
"passed": true,
"error": "重定向回 /admin/dashboard拒绝访问"
},
{
"role": "teacher",
"forbidden_route": "/admin/dashboard",
"final_url": "http://localhost:3000/teacher/dashboard?from=%2Fadmin%2Fdashboard&reason=forbidden",
"passed": true,
"error": "重定向回 /teacher/dashboard拒绝访问"
},
{
"role": "teacher",
"forbidden_route": "/student/dashboard",
"final_url": "http://localhost:3000/teacher/dashboard?from=%2Fstudent%2Fdashboard&reason=forbidden",
"passed": true,
"error": "重定向回 /teacher/dashboard拒绝访问"
},
{
"role": "teacher",
"forbidden_route": "/parent/dashboard",
"final_url": "http://localhost:3000/teacher/dashboard?from=%2Fparent%2Fdashboard&reason=forbidden",
"passed": true,
"error": "重定向回 /teacher/dashboard拒绝访问"
},
{
"role": "student",
"forbidden_route": "/admin/dashboard",
"final_url": "http://localhost:3000/student/dashboard?from=%2Fadmin%2Fdashboard&reason=forbidden",
"passed": true,
"error": "重定向回 /student/dashboard拒绝访问"
},
{
"role": "student",
"forbidden_route": "/teacher/dashboard",
"final_url": "http://localhost:3000/student/dashboard?from=%2Fteacher%2Fdashboard&reason=forbidden",
"passed": true,
"error": "重定向回 /student/dashboard拒绝访问"
},
{
"role": "student",
"forbidden_route": "/parent/dashboard",
"final_url": "http://localhost:3000/student/dashboard?from=%2Fparent%2Fdashboard&reason=forbidden",
"passed": true,
"error": "重定向回 /student/dashboard拒绝访问"
},
{
"role": "parent",
"forbidden_route": "/admin/dashboard",
"final_url": "http://localhost:3000/parent/dashboard?from=%2Fadmin%2Fdashboard&reason=forbidden",
"passed": true,
"error": "重定向回 /parent/dashboard拒绝访问"
},
{
"role": "parent",
"forbidden_route": "/teacher/dashboard",
"final_url": "http://localhost:3000/parent/dashboard?from=%2Fteacher%2Fdashboard&reason=forbidden",
"passed": true,
"error": "重定向回 /parent/dashboard拒绝访问"
},
{
"role": "parent",
"forbidden_route": "/student/dashboard",
"final_url": "http://localhost:3000/parent/dashboard?from=%2Fstudent%2Fdashboard&reason=forbidden",
"passed": true,
"error": "重定向回 /parent/dashboard拒绝访问"
}
],
"console_errors_global": []
}