Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 

7.6 KiB

教学实施模块测试报告

1. 本轮结论与边界

本轮对教学实施模块执行了浏览器级状态化 UI 契约回归,覆盖指导书、训练记录、教员预览、对抗监控、三通道运行工作台、正式考核保护和沉浸本地配置。

重要:本报告中的 16 项通过均基于 Playwright 状态化 Mock,不等于真实 API、KingBase、Redis、Nginx 或测试服务器联调通过。 Mock 会按照最终公开 API 校验方法、DTO、版本、角色和状态变化,但不会访问或修改真实 UAT 数据。本轮没有启停服务,也没有清理真实测试数据。

验证层级 本轮状态 说明
Playwright 状态化 UI 契约 通过 16 / 16,Chromium 单 worker
E2E TypeScript 通过 tsc --noEmit
真实 API 只读联调 未执行 teaching-live.spec.ts 独立执行,不能由 Mock 结果替代
Java 策略与数据库测试 不在本报告范围 由 API 工程测试负责
部署环境烟测 不在本报告范围 由发布后的 IP + 端口环境验证

2. 本轮重点回归

2.1 指导书与训练记录

  • 从虚拟仿真任务模块进入“作业指导书”。
  • 打开 2 章 3 步的正式发布指导书,依次阅读“断电隔离”“压力释放”“复装与复测”。
  • 验证章节目录、正文、安全要求、验收标准、技术参数和阅读进度。
  • 从全文阅读返回指导书列表,再返回训练任务页。
  • 从任务页进入训练记录,验证搜索区与单一表格结构。
  • 打开训练记录详情,验证成绩、评定结果和 2 / 2 步骤快照。
  • 从详情返回记录列表,再进入“完整过程”。
  • 完整过程展示真实运行工作台和服务端公开事件;教员身份为只读观察,不出现学员写操作。
  • 从完整过程返回后仍保持 ?view=records,再可回到训练任务页。

2.2 教员预览

  • 教员预览为完整工作台:步骤树、真实 Three.js 场景、教学指导、数字教员、规则检测点、操作坞和视角控制均存在。
  • 不使用 iframe。
  • 预览中的步骤试走和过程记录仅保存在浏览器内。
  • 测试对比交互前后的请求,POST / PUT / DELETE 数量保持不变。
  • 未接入的语音和规则执行明确标识,不伪造成功结果。

2.3 对抗任务监控

  • 从任务卡进入独立监控路由 /teaching/confrontation/tasks/{assignmentId}/monitor
  • 验证 RED、BLUE 两条运行可切换,当前运行、成员、进度、事件和三维场景随选择更新。
  • 验证监控页加载真实 Three.js 画布和已发布训练资产。
  • 验证故障注入采用最终 API 公私载荷契约:公开载荷只有故障引用和公开说明;故障真值仅进入 privatePayload
  • 创建干预后继续调用激活接口,并在监控页显示活动干预。
  • 从监控页进入三维观察,教员只能查看运行状态,不出现岗位推进和团队提交按钮。

2.4 三通道运行工作台与正式考核

  • 虚拟仿真:步骤轨、三维场景、规则目标、数字教员、运行日志和操作坞。
  • 实装实训:步骤轨、实装镜像工位、设备/视觉/人工事件通道、过程评定和事件时间线。
  • 对抗训练:步骤与岗位、三维协同态势、团队成员、公开故障、教学干预和负责人提交边界。
  • 三个通道均不使用 iframe,均加载发布场景资产。
  • 正式考核只消费服务端 execution 投影;页面只显示当前步骤,后续内容不从完整定义泄露。
  • 正式考核不显示操作帮助、过程记录、回放、演示、提示和数字教员。

2.5 沉浸交互本地配置

  • 修改“扳机键”映射并保存到 unreal-tran:teaching-xr-preferences:v1
  • 刷新页面后从 localStorage 恢复映射。
  • 点击“恢复默认”后还原默认映射并删除本地配置键。
  • 本地配置只保存呈现模式和按键映射,不保存训练进度、校准结果或设备位姿。

3. 自动化执行结果

检查 命令 结果
TypeScript npm run typecheck 通过
新增聚焦回归 npx playwright test tests/teaching-module.spec.ts --project=chromium --reporter=list -g "指导书和训练记录\|对抗任务监控\|三通道运行工作台\|本地按键配置" 4 / 4 通过,57.1 秒
教学模块全量 + 教员预览 npx playwright test tests/teaching-module.spec.ts tests/teaching-preview-workbench.spec.ts --project=chromium --reporter=list 16 / 16 通过,2.7 分钟

全量 16 项包括:

  1. 六入口、指导书全文阅读、记录详情与完整过程往返。
  2. 对抗独立监控、运行切换、三维观察和故障注入。
  3. 虚拟/实装/对抗三通道工作台及正式考核锁定。
  4. 沉浸本地配置保存、刷新恢复和恢复默认。
  5. 纯行政任务与数据中心只读边界。
  6. UNION 行政 + 学员 COMMON 领取、开始、推进、提交和评定闭环。
  7. 超时结算和权限边界。
  8. 教员人工结束运行并继续评定。
  9. 对抗开训前结束与开训后超时边界。
  10. 实装两步 physical-events 权威推进。
  11. ASSIGNED 预建运行接收。
  12. 对抗多岗位推进、负责人提交与公开干预。
  13. 正式考核 Unix 秒和辅助能力锁定。
  14. 发布资产加载与 WebXR 桌面会话起止。
  15. 数据中心安全明细和 Unix 秒筛选。
  16. 教员预览完整工作台与零写请求。

4. 状态化 Mock 与最终 API 的一致性

  • 学员进度只提交 completedStepCode 和动作证据;百分比及下一步骤由服务端响应派生。
  • 实装步骤只通过 /runs/{id}/physical-events 推进,不绕行通用 progress。
  • 对抗岗位校验 actionCode、岗位和负责人提交资格。
  • 正式考核使用 /runs/{id}/execution 安全投影,不向学员下发完整定义。
  • 教学干预允许管理身份提交服务端私密载荷;公开载荷若包含 privateTruthtriggerConfigsolutionanswertruth 会被 Mock 拒绝。
  • 激活干预使用版本号,返回服务端权威 ACTIVE 状态。
  • 预览不调用写接口;本地沉浸偏好不调用教学 API。
  • Mock 返回的时间字段遵循 Unix 秒口径。

5. 视觉证据

成功截图位于 ute2e/artifacts/screenshots,本轮新增的关键标签如下:

  • teaching-guide-full-reader
  • teaching-training-record-detail
  • teaching-training-record-full-process
  • teaching-module-guide-record-roundtrip
  • teaching-confrontation-monitor-switch
  • teaching-confrontation-observer-runtime
  • teaching-runtime-virtual-workbench
  • teaching-runtime-physical-workbench
  • teaching-runtime-confrontation-workbench
  • teaching-runtime-formal-exam-lock
  • teaching-immersive-local-config-saved
  • teaching-immersive-local-config-restored
  • teaching-teacher-preview-initial
  • teaching-teacher-preview-workbench

抽检结果:指导书正文、记录详情、对抗监控、三通道工作台、正式考核保护、沉浸配置和教员预览均能形成可判读的中文视觉证据;模型画布可见,页面未出现 iframe 或空白工作区。

6. 制品位置

  • HTML 报告:ute2e/artifacts/html-report/index.html
  • JSON 结果:ute2e/artifacts/results.json
  • 成功截图:ute2e/artifacts/screenshots
  • 失败诊断:ute2e/artifacts/test-results
  • 状态化 Mock:ute2e/tests/teaching-contract-mock.ts
  • 教学模块用例:ute2e/tests/teaching-module.spec.ts
  • 教员预览用例:ute2e/tests/teaching-preview-workbench.spec.ts

真实环境联调必须单独执行并单独报告;不得把本报告的 Mock 通过结论写成“真实后端已联调通过”。