Skip to content

全量用户侧功能测试矩阵

1. 环境基线

项目2026-06-04 初始2026-06-05 验证
日期2026-06-042026-06-05
server/ 分支main,cleanmain,clean
web/ 分支main,cleanmain,clean
docs/ 分支main,cleanmain,clean
env/e2e.env存在存在,含 8 个 E2E 变量
前端页面数48 个 page.tsx45 个 page.tsx
后端 Controller 数34 个33 个
现有 E2E spec12 个12 个
后端 readinessUP(db/goJudge/judgeQueue/minioStorage/redisEnhancement)
OpenAPI3.1.0,124 个 paths

Playwright MCP 真实页面验证(2026-06-05)

角色账号跳转 URL侧边栏入口数据状态
管理员U-SA1/admin治理概览、平台配置、组织架构、用户管理、学期管理、课程模板、开课管理、审计日志、权限解释(9 个)平台配置摘要已接入,治理模块全部接通
教师U-TA1/teacher教学概览、我的课程、作业管理、提交管理、成绩册、题库中心、实验中心、通知公告(8 个)19 个课程、26 个未读通知,已接通模块全部显示
学生U-ST1/student学习中心、我的课程、作业任务、实验项目、我的成绩、站内通知(6 个)当前无可见课程,需数据准备

console error: 仅 favicon.ico 404,无业务错误。

2. 功能覆盖矩阵

2.1 公共与认证

#功能域页面/API角色必测操作正向场景失败/权限负例数据准备Playwright MCP 验证方式预期证据覆盖状态
1登录/login全部账号密码登录正确凭据登录成功错误密码、空输入、禁用用户已有管理员/教师/学生账号输入凭据→点击登录→验证跳转URL/页面文案
2首页重定向/全部访问根路径按角色跳转到对应首页未登录跳转登录页登录态访问/→检查跳转目标URL
3退出登录顶栏全部点击退出退出后跳转登录页登录态点击退出→验证跳转URL
4权限不足/unauthorized全部越权访问显示权限不足提示访问无权限页面→检查提示页面文案
5通知入口/me/notifications全部按角色跳转跳转到对应通知页登录态点击通知入口→验证跳转URL

2.2 管理员功能

#功能域页面/API角色必测操作正向场景失败/权限负例数据准备Playwright MCP 验证方式预期证据覆盖状态
6治理概览/admin管理员打开页面显示平台摘要和快捷入口学生访问被拒导航到/admin→检查内容截图
7平台配置/admin/platform-config管理员修改平台名称保存成功空名称提交修改名称→保存→刷新验证页面文案
8组织架构/admin/org-units管理员创建学校/学院树形展示重复编码E2E-FULLRUN-前缀学校创建节点→检查树DOM/截图
9用户管理/admin/users管理员创建用户创建成功并显示重复用户名E2E-FULLRUN-前缀用户创建→搜索→查看详情页面文案
10用户详情/admin/users/[userId]管理员查看/修改用户信息展示正确无效ID已有用户导航到详情→检查字段截图
11学期管理/admin/academic-terms管理员创建学期创建成功重叠学期E2E-FULLRUN-前缀学期创建→检查列表列表项
12课程模板/admin/course-catalogs管理员创建模板创建成功空表单E2E-FULLRUN-前缀模板创建→检查列表列表项
13开课管理/admin/course-offerings管理员创建开课创建成功无效关联依赖学期+模板创建→检查列表列表项
14开课详情/admin/course-offerings/[offeringId]管理员查看详情显示教学班和成员无效ID已有开课导航到详情→检查内容截图
15审计日志/admin/audit-logs管理员筛选日志结果展示正确无效筛选条件有操作记录筛选→检查结果→复制requestId列表项
16权限解释/admin/auth-explain管理员创建授权组授权组创建成功允许/拒绝/错误输入创建组→添加成员→测试查询页面文案

2.3 教师功能

#功能域页面/API角色必测操作正向场景失败/权限负例数据准备Playwright MCP 验证方式预期证据覆盖状态
17教学概览/teacher教师打开页面显示课程统计学生访问被拒有课程数据导航到/teacher→检查内容截图
18我的课程/teacher/courses教师查看列表课程卡片显示空态已关联课程导航→检查列表列表项
19课程详情/teacher/courses/[offeringId]教师查看详情详情正确无权课程已有开课导航→检查内容截图
20教学班与成员/teacher/courses/[offeringId]/members教师批量添加成员添加成功重复添加/CSV格式错误已有开课+学生添加→检查列表→CSV导入列表项
21公告管理/teacher/courses/[offeringId]/announcements教师创建/编辑/发布公告状态更新空标题已有开课创建→编辑→发布→检查列表项
22资源管理/teacher/courses/[offeringId]/resources教师上传/改名/下载/删除文件操作成功超大文件/空名已有开课上传→改名→下载→删除文件名/下载
23讨论管理/teacher/courses/[offeringId]/discussions教师创建/回复/锁定讨论状态更新空内容已有开课创建→回复→锁定→检查列表项
24讨论详情/teacher/courses/[offeringId]/discussions/[discussionId]教师查看/回复回复显示无效ID已有讨论导航→回复→检查回复列表
25课程题库/teacher/courses/[offeringId]/question-bank教师创建题目五类题创建成功空表单/非法分值已有开课创建各类题→检查列表列表项
26判题环境/teacher/courses/[offeringId]/judge-environments教师创建/编辑/归档环境管理成功空表单已有开课创建→编辑→归档→检查列表项
27作业列表/teacher/assignments教师查看/筛选列表正确空态已有作业导航→筛选→检查列表项
28创建作业/teacher/assignments/create教师结构化创建创建成功无题目/无分值题库已有题目填写→配置→提交页面跳转
29编辑作业/teacher/assignments/[assignmentId]/edit教师编辑/发布/关闭状态变更关闭后修改已有作业编辑→发布→检查状态状态标签
30跨课程题库/teacher/question-bank教师查看跨课程题目列表正确多课程题目导航→检查列表列表项
31提交列表/teacher/submissions教师查看/筛选列表正确空态已有提交导航→筛选→检查列表项
32提交详情/teacher/submissions/[submissionId]教师查看/评分/重判详情和评测报告无效ID已有提交导航→查看→评分→重判截图
33成绩册/teacher/grading/gradebook教师查询/导出/批量调整/导入/发布成绩操作成功格式错误导入已有成绩数据查询→导出→批量调整→导入→发布文件/状态
34实验管理/teacher/labs教师创建/编辑/发布/关闭/评阅实验生命周期空表单已有开课创建→发布→评阅→检查列表项
35教师通知/teacher/notifications教师查看/已读/全部已读通知状态更新有通知查看→标记已读→检查未读数

2.4 学生功能

#功能域页面/API角色必测操作正向场景失败/权限负例数据准备Playwright MCP 验证方式预期证据覆盖状态
36学习中心/student学生打开页面显示课程统计和任务提醒教师访问被拒有课程数据导航到/student→检查内容截图
37我的课程/student/courses学生查看列表课程显示空态已选课导航→检查列表列表项
38课程内容/student/courses/[classId]学生查看公告/资源/讨论内容显示正确访问其他班级已选课导航→检查各tab截图
39学生讨论详情/student/courses/[classId]/discussions/[discussionId]学生查看/回复回复成功锁定讨论回复已有讨论导航→回复→检查回复列表
40作业列表/student/assignments学生查看列表任务显示正确空态已发布作业导航→检查列表列表项
41作业详情/student/assignments/[assignmentId]学生答题/提交提交成功超截止时间/非法文件已发布作业导航→答题→提交→检查历史提交记录
42编程工作区/student/assignments/[assignmentId]/workspace/[questionId]学生编辑/运行/提交代码操作成功语法错误运行已有编程题打开→编辑→保存→运行→提交代码/结果
43提交详情/student/submissions/[submissionId]学生查看详情评测结果显示无效ID已有提交导航→检查详情截图
44我的成绩/student/grades学生查看/导出成绩显示正确已发布成绩导航→检查→导出成绩/文件
45实验列表/student/labs学生查看/上传附件/提交报告实验操作成功空报告提交已发布实验导航→上传→提交→检查状态
46学生通知/student/notifications学生查看/已读/全部已读通知状态更新有通知查看→标记已读→检查未读数

2.5 响应式与移动端

#测试项页面验证方式预期证据覆盖状态
47登录页移动端/login设置375px视口→操作截图
48管理员侧边栏移动端/admin设置375px视口→检查导航截图
49教师侧边栏移动端/teacher设置375px视口→检查导航截图
50学生侧边栏移动端/student设置375px视口→检查导航截图

2.6 负例与权限边界

#测试项场景预期结果验证方式覆盖状态
51错误登录错误密码提示错误页面文案
52禁用用户登录禁用账号提示禁用页面文案
53学生访问管理员页学生访问/admin跳转unauthorizedURL
54学生访问其他班级学生访问其他classId403或空页面状态
55教师访问无授权课程教师访问未关联offeringId403或空页面状态
56未登录访问受保护API无token请求/api/v1/*401网络响应
57作业关闭后提交关闭作业后尝试提交提示已关闭页面文案
58讨论锁定后回复锁定讨论后学生回复提示已锁定页面文案

3. 主链路测试矩阵

#链路名称步骤涉及角色覆盖状态
ML-1平台初始化管理员创建组织→用户→学期→模板→开课管理员
ML-2教学准备教师创建教学班→添加成员→上传资源→发布公告→创建讨论教师
ML-3题库与作业教师创建题库题目→创建判题环境→创建作业→配置试卷→发布教师
ML-4学生答题学生查看作业→工作区编辑→保存→运行→正式提交学生
ML-5评测与批改系统评测→教师查看提交→评分→重判→发布成绩教师/系统
ML-6成绩查看学生查看提交结果→成绩→导出学生
ML-7实验流程教师创建实验→学生提交报告→教师评阅→发布教师/学生
ML-8通知流转系统发通知→用户查看→标记已读全部
ML-9审计与权限管理员查看审计日志→权限解释管理员

4. 数据准备策略

统一前缀:E2E-FULLRUN-20260604-*

数据类型准备方式关键字段清理方式
组织(学校/学院/课程/班级)管理员UI或APIname, code, type数据库DELETE
用户(管理员/教师/助教/学生/禁用)管理员UI或APIusername, role, status数据库DELETE
学期管理员UIname, startDate, endDate数据库DELETE
课程模板管理员UIname, code数据库DELETE
开课管理员UIofferingId, termId, catalogId数据库DELETE
教学班教师UIclassName, offeringId数据库DELETE
课程成员教师UI批量添加userId, classId数据库DELETE
公告教师UItitle, contentAPI删除
资源教师UI上传fileName, sizeAPI删除
讨论教师/学生UItitle, content数据库DELETE
题库(五类)教师UItype, content, score数据库DELETE
判题环境教师UIname, language数据库DELETE
作业教师UItitle, deadline, paper数据库DELETE
提交学生UIassignmentId, answers数据库DELETE
编程工作区学生UIquestionId, files数据库DELETE
实验教师UItitle, description数据库DELETE
实验报告学生UIlabId, content数据库DELETE
通知系统生成type, content数据库DELETE