Files
railwaysystem/docs/reports/browser-acceptance-report.md
T

107 lines
6.2 KiB
Markdown
Raw Normal View History

# RailwaySystem 端到端浏览器自动化验收报告
> **文档定位**:记录基于 Playwright 的真实前端界面全流程交互、端到端用户路径及跨模块联动验收结果。
> **基线版本**:Final Candidate `5a49b2e2988bf23ca2a70568264c05b24dfda1b6` (`origin/feat/cicd-pipeline`)
> **执行状态**:✅ **FINAL_BROWSER_ACCEPTANCE = PASS**
> **Swagger 接口平台状态**:✅ **PASS** *(系统工具 → 系统接口,v3/api-docs=200,swagger-resources=200)*
> **HTTP 500 异常**:**0** | **Console 阻断错误**:**0**
---
## 1. 验收测试目标与用例矩阵实测结果
本验收套件模拟真实教务员、任课教师及学员在现代浏览器中的实际交互操作,覆盖以下核心验收阶段,全部通过验证:
```mermaid
flowchart TD
subgraph Phase1["阶段一:系统鉴权与档案"]
TC1["TC-E2E-01: 管理员登录与鉴权 (PASS)"]
TC2["TC-E2E-02: 基础教务档案录入 (PASS)"]
TC1 --> TC2
end
subgraph Phase2["阶段二:教务编排与名单"]
TC3["TC-E2E-03: 计划拟定与课程绑定 (PASS)"]
TC4["TC-E2E-04: 名单导入与报到动作 (PASS)"]
TC5["TC-E2E-05: 排课与四维冲突拦截 (PASS)"]
TC2 --> TC3
TC3 --> TC4
TC3 --> TC5
end
subgraph Phase3["阶段三:现场物联与审计"]
TC6["TC-E2E-06: 考勤花名册与班牌交互 (PASS)"]
TC7["TC-E2E-07: 统计分析与画像只读 (PASS)"]
TC8["TC-E2E-08: 系统工具与操作日志审计 (PASS)"]
TC4 --> TC6
TC5 --> TC6
TC6 --> TC7
TC7 --> TC8
end
```
| 验收阶段编号 | 验收场景与核心交互路径 | 实测结果 | 关键检查点 |
| :---: | :--- | :---: | :--- |
| **TC-E2E-01** | 系统管理与管理员登录流程 (含验证码与菜单权限加载) | ✅ **PASS** | 验证码刷新、Token 存储、`sys_menu` 路由动态加载 |
| **TC-E2E-02** | 基础教务档案录入 (教师/学员/教室/场地表单与列表渲染) | ✅ **PASS** | 教师手机号唯一、学员身份证掩码脱敏(后4位) |
| **TC-E2E-03** | 开班计划拟定与课程师资绑定 (计划生命周期流转) | ✅ **PASS** | 32位UUID主键、初始状态 0:草稿、学时自动联动 |
| **TC-E2E-04** | 参训名单批量导入与报到动作 (Enrollment 面板交互) | ✅ **PASS** | 实际调用 `/report` 接口 200 OK,待报到 → 已报到 |
| **TC-E2E-05** | 可视化课表排课与四维冲突弹窗拦截 (Timetable 交互) | ✅ **PASS** | Warning Cancel/Confirm 均正常,无 force 违规旁路 |
| **TC-E2E-06** | 课次考勤花名册与电子班牌呈现 (Board 交互) | ✅ **PASS** | 前端路由 `/equip/board` 正常渲染,代签 manual_flag |
| **TC-E2E-07** | 统计分析与画像只读报表 (Analytics Read Only 交互) | ✅ **PASS** | 报到、考勤、学时、画像报表只读查询与导出 |
| **TC-E2E-08** | 系统工具与操作日志审计留痕 (OperLog 校验) | ✅ **PASS** | 表单构建、代码生成、系统接口正常可见,日志落库 |
---
## 2. 核心模块真实验收客观记录
### 2.1 Swagger 接口平台在线验收
* **验收结论**:`PASS`
* **真实系统入口**:`系统工具 → 系统接口`
* **接口服务探测**:Swagger UI 正常渲染,`v3/api-docs` 返回 200,`swagger-resources` 返回 200,无 502 坏网关,无死链。
### 2.2 基础主数据模块 (Master Data)
* **Teacher**:`PASS`(教师档案增删改查、手机号唯一性校验)
* **Student**:`PASS`(学员建档、脱敏掩码显示、状态正常)
* **Classroom**:`PASS`(理论教室容量、门牌与状态管理)
* **Site**:`PASS`(实训场地类型、容量与占用管理)
### 2.3 教务核心业务 (Business)
* **Plan**:`PASS`(32位UUID计划拟定、生命周期状态初始为 0:草稿)
* **PlanCourse**:`PASS`(课程绑定、教师关联、学时自动联动计算)
* **Enrollment**:`PASS`(参训入班、容量校验、初始 0:待报到)
### 2.4 开班报到核验 (Report Confirm)
* **验收结论**:`PASS`
* **实际调用验证**:`POST /train/enrollments/{enrollmentId}/report` 返回 200 OK,学员状态由 `待报到 (0)` 成功流转为 `已报到 (1)`。
* **术语与界面说明**:前端菜单显示为 `UI_MENU_LABEL = 开班签到`,业务模型与契约术语为 `BUSINESS_TERM = 开班报到`。
### 2.5 排课与四维冲突处理 (Scheduling)
* **Warning 取消交互**:`Warning Cancel = PASS`(取消后保持原排课状态不变)
* **Warning 确认保存交互**:`Warning Confirm/Save = PASS`(用户确认后成功入库,未破坏时间唯一性不变量)
* **合规要求**:排课业务逻辑中严格禁止且未出现 `force`、`ignoreConflict`、`overrideConflict` 旁路违规参数。
* **课次详情查询**:`Lesson detail GET: NOT CALLED`(遵循契约规范,不发起多余查询)。
### 2.6 电子班牌 (Board)
* **验收结论**:`PASS`
* **正式前端路由**:`BOARD_FRONTEND_ROUTE = /equip/board`(菜单路径:教学设施 → 电子班牌;后端对应 API 路由为 `/train/board`)。
### 2.7 统计分析与学员画像 (Analytics)
* **报到统计 (Report Analytics)**:`PASS / Read Only`
* **考勤统计 (Checkin Analytics)**:`PASS / Read Only`
* **学时完成度 (Duration)**:`PASS / Read Only`
* **学员多维画像 (Portrait)**:`PASS / Read Only`
### 2.8 运维与系统工具 (OperLog & System Tools)
* **操作日志 (OperLog)**:`PASS`(所有写操作审计日志落库完整)
* **系统工具可见项**:实际可见「表单构建」、「代码生成」、「系统接口」
* **角色分配管理**:`RBAC_ROLE_ASSIGNMENT: ENVIRONMENT_CONFIGURATION`
* **数据保留策略**:`Browser acceptance created/changed data: KEEP_FOR_AUDIT`(浏览器验收过程中产生及流转的数据全量保留用于审计追溯,文档阶段不执行清理)。
---
## 4. 技术参考链接 (Technical References)
* 综合测试报告:[final-test-report.md](final-test-report.md)
* 核心业务测试矩阵:[docs/_meta/core-business-test-matrix.md](../_meta/core-business-test-matrix.md)
* 业务主链规范:[docs/handbook/02-business-process.md](../handbook/02-business-process.md)