432 lines
14 KiB
Markdown
432 lines
14 KiB
Markdown
# 05 验收证据
|
||
|
||
生成日期:2026-06-27
|
||
|
||
## 1. 本轮命令证据
|
||
|
||
执行目录:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams
|
||
```
|
||
|
||
### 1.1 静态构建
|
||
|
||
命令:
|
||
|
||
```bash
|
||
npm --prefix /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app run build
|
||
```
|
||
|
||
结果:
|
||
|
||
```text
|
||
退出码:0
|
||
gmoccapy_static_build=ok
|
||
```
|
||
|
||
产物:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/dist/index.html
|
||
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/dist/src/main.js
|
||
```
|
||
|
||
### 1.2 Node smoke
|
||
|
||
命令:
|
||
|
||
```bash
|
||
npm --prefix /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app run smoke:node
|
||
```
|
||
|
||
结果:
|
||
|
||
```text
|
||
退出码:0
|
||
linuxcnc_kinematics_runtime_smoke=ok
|
||
linuxcnc_interpreter_runtime_smoke=ok
|
||
linuxcnc_ini_runtime_smoke=ok
|
||
run_preconditions_ini_profile_smoke=ok
|
||
run_preconditions_kinematics_smoke=ok
|
||
run_preconditions_machine_file_smoke=ok
|
||
run_feedback_status_loop_smoke=ok
|
||
run_ready_sequence_smoke=ok
|
||
linuxcnc_task_hal_runtime_smoke=ok
|
||
task_hal_machine_file_smoke=ok
|
||
switchkins_remap_hal_sync_smoke=ok
|
||
browser_task_hal_worker_smoke=ok
|
||
native_task_hal_source_artifact_audit=ok
|
||
full_linuxcnc_5axis_source_node_smoke=ok
|
||
real_linuxcnc_5axis_program_cases_smoke=ok
|
||
full_execution_boundary_smoke=ok
|
||
machine_file_staging_smoke=ok
|
||
five_axis_session_smoke=ok
|
||
rtcp_store_smoke=ok
|
||
profile_boundary_smoke=ok
|
||
gmoccapy_xyzab_profile_smoke=ok
|
||
gmoccapy_icon_manifest_smoke=ok
|
||
gmoccapy_icon_registry_smoke=ok
|
||
gmoccapy_communication_model_smoke=ok
|
||
gmoccapy_hal_model_smoke=ok
|
||
gmoccapy_xyzab_gates_smoke=ok
|
||
linear_unit_conversion_smoke=ok
|
||
```
|
||
|
||
额外输出摘要:
|
||
|
||
```text
|
||
native_task_hal_readiness_artifact=web-rtcp-5axis-sim-plan/build/readiness/native-task-hal-readiness.json
|
||
hardware_drive=0
|
||
host_realtime_kernel=0
|
||
external_user_m_process_ready=0
|
||
tool_db_process_ready=0
|
||
promotion_scope=web_simulation_only
|
||
linuxcnc_source_program_case_count=8
|
||
all_cases_program_preview_points=ok
|
||
all_cases_executed_path_points=ok_after_run_or_step
|
||
all_cases_toolpath_preview_source=linuxcnc_interpreter_canonical_motion
|
||
all_cases_tool_execution_trace_source=linuxcnc_tp_samples_or_task_motion_hal_feedback
|
||
all_switchkins_cases_rtcp_state_changes_verified=1
|
||
fixture_toolpath_fallback_not_promoted=1
|
||
```
|
||
|
||
### 1.3 浏览器 smoke
|
||
|
||
命令:
|
||
|
||
```bash
|
||
npm --prefix /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app run smoke
|
||
```
|
||
|
||
结果:
|
||
|
||
```text
|
||
退出码:0
|
||
gmoccapy_shell_smoke=ok
|
||
gmoccapy_dist_smoke=ok
|
||
```
|
||
|
||
覆盖说明:
|
||
|
||
- `verify_gmoccapy_shell_browser.sh` 使用 headless Chromium 打开测试页。
|
||
- `verify_gmoccapy_dist_browser.sh` 先构建 dist,再打开 dist 入口。
|
||
- 浏览器断言覆盖主区域、Three.js canvas dataset、profile 切换、RTCP 诊断、LinuxCNC INI 诊断、Task policy 诊断、按钮图标、按钮 active/inactive 视觉状态和 G-code 行高亮。
|
||
|
||
### 1.4 QA 站点回归测试
|
||
|
||
命令:
|
||
|
||
```bash
|
||
npm --prefix /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test test
|
||
```
|
||
|
||
结果:
|
||
|
||
```text
|
||
退出码:0
|
||
site_test_status=PASS
|
||
site_test_target_url=http://127.0.0.1:35861/web-rtcp-5axis-sim-plan/app/index.html
|
||
site_test_report=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/site-test-report.json
|
||
```
|
||
|
||
报告摘要:
|
||
|
||
```text
|
||
status=PASS
|
||
generatedAt=2026-06-28T00:31:19.883Z
|
||
findings=41
|
||
failures=0
|
||
warnings=0
|
||
consoleErrors=0
|
||
pageErrors=0
|
||
requestFailures=0
|
||
```
|
||
|
||
修复说明:
|
||
|
||
- `run-site-test.mjs` 默认从当前仓库启动本地静态服务,避免把本地修复结果和远端旧部署混在一起;如需测远端,仍可通过 `TARGET_URL=...` 覆盖。
|
||
- 点击逻辑改为每次在页面上下文即时查询元素,修复 Puppeteer `Node is detached from document`。
|
||
- STEP 验收改为 Task/HAL `singleStepping=true` 且保持暂停态。
|
||
- Restore Session 前先进入 MANUAL 并确认 JOG 改变坐标,再验证恢复快照。
|
||
|
||
## 2. working7 全量功能实际执行图文证据
|
||
|
||
本轮新增全量实测证据,覆盖所有主要按钮、程序执行、刀具预览、刀具实时执行路径、G-code 执行过程、机床轴值和右侧控制区。
|
||
|
||
命令:
|
||
|
||
```bash
|
||
npm --prefix /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test run evidence:working7:full
|
||
```
|
||
|
||
结果:
|
||
|
||
```text
|
||
退出码:0
|
||
working7_full_functional_status=PASS
|
||
working7_full_functional_job_id=w7full-20260628002838-518bf522
|
||
working7_full_functional_report_id=report-w7full-20260628002838-518bf522
|
||
working7_full_functional_json=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence-report.json
|
||
working7_full_functional_pdf=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence-report.pdf
|
||
working7_full_functional_md=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence-report.md
|
||
working7_full_functional_screenshots=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence
|
||
```
|
||
|
||
报告摘要:
|
||
|
||
```text
|
||
jobId=w7full-20260628002838-518bf522
|
||
reportId=report-w7full-20260628002838-518bf522
|
||
evidenceScope=working7-full-functional-evidence
|
||
generatedAt=2026-06-28T00:28:38.507Z
|
||
targetUrl=http://127.0.0.1:41281/web-rtcp-5axis-sim-plan/app/index.html
|
||
status=PASS
|
||
steps=19
|
||
actions=73
|
||
failedActions=0
|
||
checks=6
|
||
failedChecks=0
|
||
consoleErrors=0
|
||
networkErrors=0
|
||
pageErrors=0
|
||
```
|
||
|
||
图文报告:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence-report.md
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence-report.pdf
|
||
```
|
||
|
||
截图:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/01-loaded-inventory.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/02-initial-run-blocked.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/03-powered-homed.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/04-auto-right-panel.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/05-right-sidebar-all-states.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/06-profile-xyzbc.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/07-preview-buttons.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/08-linuxcnc-source-loaded.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/09-open-file-loaded.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/10-run-ready.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/11-run-realtime-path.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/12-pause-resume-step.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/13-stop-idle.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/14-manual-jog-axis-values.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/15-mdi-execution.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/16-overrides-hal.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/17-spindle-coolant.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/18-session-fullscreen.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/19-diagnostics-audit.png
|
||
```
|
||
|
||
覆盖说明:
|
||
|
||
- 全量报告使用第一人称图文格式。
|
||
- 每个阶段都记录截图、store 状态、DRO、axisPose、canvas dataset、G-code 当前行和关键按钮状态。
|
||
- `gmoccapy-xyzab` 作为 reference-only profile 验证 TCP 禁用原因,不作为 RTCP proof。
|
||
- 最终报告无 console、network 或 page error。
|
||
|
||
## 3. working7 手册流程专项 QA 证据
|
||
|
||
本轮新增专项证据,覆盖原任务矩阵中需要截图/PDF 的手册操作流。
|
||
|
||
命令:
|
||
|
||
```bash
|
||
npm --prefix /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test run evidence:working7
|
||
```
|
||
|
||
结果:
|
||
|
||
```text
|
||
退出码:0
|
||
working7_manual_flow_status=PASS
|
||
working7_manual_flow_job_id=w7-20260628002915-30d1c6c8
|
||
working7_manual_flow_report_id=report-w7-20260628002915-30d1c6c8
|
||
working7_manual_flow_json=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence-report.json
|
||
working7_manual_flow_pdf=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence-report.pdf
|
||
working7_manual_flow_screenshots=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence
|
||
```
|
||
|
||
报告信息:
|
||
|
||
```text
|
||
jobId=w7-20260628002915-30d1c6c8
|
||
reportId=report-w7-20260628002915-30d1c6c8
|
||
evidenceScope=working7-manual-flow-evidence
|
||
generatedAt=2026-06-28T00:29:15.240Z
|
||
targetUrl=http://127.0.0.1:41931/web-rtcp-5axis-sim-plan/app/index.html
|
||
status=PASS
|
||
consoleErrors=0
|
||
networkErrors=0
|
||
pageErrors=0
|
||
```
|
||
|
||
截图:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/01-loaded.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/02-powered-homed-manual.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/03-auto-active.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/04-manual-jog-x.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/05-mdi-command.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/06-overrides-hal.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/07-spindle-coolant.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/08-session-restored.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/09-diagnostics.png
|
||
```
|
||
|
||
检查项摘要:
|
||
|
||
```text
|
||
Main shell regions and canvas are ready=PASS
|
||
POWER and HOME leave MANUAL ready=PASS
|
||
AUTO activates without losing power/home=PASS
|
||
Manual jog changes X=PASS
|
||
MDI command is accepted in MDI mode=PASS
|
||
Overrides reset and HAL toggles are active=PASS
|
||
Spindle and coolant controls update state=PASS
|
||
Session restore returns to saved profile=PASS
|
||
Diagnostics expose Task/HAL and gmoccapy HAL=PASS
|
||
Screenshots are nonblank=PASS
|
||
```
|
||
|
||
专项说明:
|
||
|
||
- MDI 浏览器证据证明真实页面可进入 MDI 并提交 `G90 X12.5 Y-4 Z1.25 F900`,Task/HAL runtime 接收后进入 MDI/reading 状态。
|
||
- `rtcp_store_smoke=ok` 继续作为 MDI 坐标更新、MDI 历史和 profile 限位夹紧的 Node store 逻辑证据。
|
||
- Save/Restore 本轮在浏览器中使用 OPFS,路径为 `web-rtcp-5axis-sim-plan/sessions/working7-manual-flow/working7-session.json`。
|
||
|
||
## 4. 既有 QA 证据
|
||
|
||
项目已有可引用 QA 证据:
|
||
|
||
### 3.1 gmoccapy XYZAB 功能报告
|
||
|
||
JSON:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab-function-report.json
|
||
```
|
||
|
||
PDF:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab-function-report.pdf
|
||
```
|
||
|
||
报告信息:
|
||
|
||
```text
|
||
jobId=xyzab-20260626214346-f4b4aa36
|
||
reportId=report-xyzab-20260626214346-f4b4aa36
|
||
evidenceScope=gmoccapy-xyzab-function
|
||
generatedAt=2026-06-26T21:43:46.310Z
|
||
targetUrl=http://127.0.0.1:36983/web-rtcp-5axis-sim-plan/app/index.html
|
||
screenshotsDir=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab
|
||
```
|
||
|
||
截图:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/01-loaded.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/02-profile-selected.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/03-run-blocked-power.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/04-run-blocked-reference-evidence.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/05-controls-active.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/06-hal-diagnostics.png
|
||
```
|
||
|
||
### 3.2 按钮控制报告
|
||
|
||
JSON:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/button-control-evidence-report.json
|
||
```
|
||
|
||
PDF:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/button-control-evidence-report.pdf
|
||
```
|
||
|
||
报告信息:
|
||
|
||
```text
|
||
jobId=btn-20260623091525-b35869f1
|
||
reportId=report-btn-20260623091525-b35869f1
|
||
evidenceScope=button-control-evidence
|
||
generatedAt=2026-06-23T09:15:25.426Z
|
||
targetUrl=http://127.0.0.1:41741/web-rtcp-5axis-sim-plan/app/index.html
|
||
screenshotsDir=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence
|
||
```
|
||
|
||
截图目录:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence
|
||
```
|
||
|
||
### 3.3 Native Task/HAL 对比
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/native-task-hal-comparison-report.json
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/native-task-hal-comparison-report.md
|
||
```
|
||
|
||
### 3.4 LinuxCNC source run 报告
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/test-linuxcnc-source-run-report-2026-06-23.docx
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/test-linuxcnc-source-run-report.json
|
||
```
|
||
|
||
## 4. 页面和脚本入口
|
||
|
||
本地 app:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/index.html
|
||
```
|
||
|
||
dist app:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/dist/index.html
|
||
```
|
||
|
||
浏览器 smoke 测试页:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html
|
||
```
|
||
|
||
浏览器验证脚本:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/browser/verify_gmoccapy_shell_browser.sh
|
||
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/browser/verify_gmoccapy_dist_browser.sh
|
||
```
|
||
|
||
专项 QA 脚本:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/capture-working7-manual-flow-evidence.mjs
|
||
```
|
||
|
||
## 5. 证据缺口
|
||
|
||
当前没有缺少构建/自动化 smoke 证据,也已有本轮手册流程专项 JSON/PDF/截图证据。
|
||
|
||
如后续验收要求“逐条复刻操作手册每一个按钮截图”或“生成新的 Word 汇总报告”,需要补充:
|
||
|
||
- 新的 job_id/report_id。
|
||
- 更细粒度的每个按钮截图路径。
|
||
- 人工或 Playwright 执行时的目标 URL。
|
||
- MDI 历史按钮专项截图。
|