Files
ArmorandClaude Opus 4.7 e1d601a774 chore: add reference docs, scripts, tests, demo, prototypes
- Reference docs: known issues, user journey, location redesign, mission merge plan
- Scripts: fill_location_state, merge_missions, migrate_location, migrate_state
- Tests: e2e test suite, asset entries unit tests
- Demo: location board, hifi prototypes, test screenshots
- Data backup: asset log entries and state nodes
- Update .gitignore

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 15:29:47 +08:00

5.1 KiB
Raw Permalink Blame History

KSP 管理后台测试报告

执行日期:2026-05-31

1. 执行结论

本轮完成了项目重构梳理、现有测试计划评估,并生成新的 docs/test_plan_v2.md

实际执行测试采用非破坏性 HTTP/API/模板级回归检查,目标是避免污染当前 .env 指向的真实 PostgreSQL 数据库。共执行 24 项,24 通过,0 失败。

浏览器自动化和现有 Python Playwright 脚本未能执行:本机 .venv\Scripts\python.exe 指向不存在的 Python 安装,py -3 不可用;Codex in-app Browser 的 Node 会话在本机 sandbox 中连续启动失败。因此,本报告不把 JS 点击、canvas 像素、CRUD 写入类场景算作已通过。

2. 测试环境

  • 运行服务:http://127.0.0.1:9000
  • 应用端口:.envAPP_PORT=9000
  • 数据库:.env 指向 PostgreSQL PGHOST=192.168.195.241PGDATABASE=KSP
  • 测试方式:PowerShell Invoke-WebRequest / Invoke-RestMethod
  • 数据安全策略:不执行新增、编辑、删除、导入、对接保存等持久写入动作

3. 已执行测试

# 检查项 结果 详情
1 API health returns ok PASS {"service":"ksp-data-hangar","status":"ok"}
2 Dashboard reachable PASS HTTP 200
3 Base shell/sidebar present PASS sidebar、任务运营、数据中心、燃料换算存在
4 Global sim time control present PASS sim-time-display+1d、Today 存在
5 Dashboard data panels present PASS Tracked Assets / Active Missions / Upcoming / Status Board 存在
6 Asset list reachable with rows PASS rows=15
7 Asset list filters/actions present PASS qasset_typesort、New Asset 存在
8 Asset search route returns filtered page PASS /assets?q=ST-01 返回匹配页面
9 Asset detail reachable from list link PASS /assets/fba95050-ca89-4e67-b796-66b7e1c40764?...
10 Asset detail dock/log modals present PASS dock-modallog-modalsaveDocksaveLog 存在
11 Mission status board reachable PASS HTTP 200
12 Mission status board filters present PASS asset_typelocationrecord_scope 存在
13 Location board reachable PASS HTTP 200map-cvLOC_ASSETS 存在
14 Location board embeds orbital data PASS Keplerian/ORB/BODIES 数据存在
15 Timeline reachable PASS HTTP 200tlr 存在
16 Timeline filters present PASS tl-qtlstl-typetl-loctl-state 存在
17 Data center: Engines PASS rows=31
18 Data center: Communications PASS rows=31
19 Data center: Tanks PASS rows=27
20 Data center: Vehicles PASS rows=11
21 Fuel converter page reachable PASS HTTP 200
22 Fuel factors API returns list PASS count=8
23 Fuel convert API volume mode PASS mode=volumecount=8
24 Fuel convert invalid input rejected PASS HTTP 400

4. 未执行/跳过项

项目 状态 原因
tests/test_e2e.py SKIPPED 本地 Python 不可用:.venv 入口坏,py -3 未安装
Playwright 浏览器点击测试 SKIPPED 浏览器自动化运行时启动失败
主题切换、时间 modal、ESC、点击导航 SKIPPED 需要浏览器 JS 执行环境
地点板 canvas 像素/点击 Jupiter/Io/Back/缩放拖拽 SKIPPED 需要浏览器和截图/像素采样
时间线筛选实际生效 SKIPPED 需要浏览器 JS 执行环境
日志 CRUD、对接保存、删除、导入 SKIPPED 当前连接真实 PostgreSQL,执行会污染数据

5. 发现的问题

  1. 现有 docs/test_plan.md 与实际不一致:文档写“12 个模块”,实际只有 10 个模块。
  2. 现有 tests/test_e2e.py 的断言过浅,且报告名称编码损坏;它更像 smoke test,不能证明重构验收通过。
  3. draft_board.md 要求的 docking_events 表尚未落地;当前对接接口只是给当前资产新增 state 日志,没有双向关系、分离或时间敏感查询。
  4. 时间线模板存在 onclick="tlPreset(...)",但代码库中未找到 tlPreset 实现;搜索/类型/地点/状态筛选控件也未找到绑定逻辑。
  5. 资产详情日志搜索 ad-lq 和类型筛选 ad-lf 存在 DOM,但未找到前端过滤脚本。
  6. 地点板当前用 Canvas 渐变绘制天体;尚未实现 draft 中“真实纹理 + 渲染模式切换”的目标。
  7. 燃料换算页面是前端本地计算,API 另有 /api/v1/fuel-converter/convert;两者的模式命名不同,后续测试需同时覆盖页面行为和 API 合约。

6. 建议

  • 先修复本地 Python/Playwright 环境,恢复自动化测试可执行性。
  • 将当前 tests/test_e2e.py 拆成 smokebrowserbusiness 三类,避免把 DOM 存在误当成功能通过。
  • 为写入测试准备隔离数据库或事务回滚 fixture,再验证日志 CRUD、对接和分离。
  • 对时间线和资产详情筛选先补前端逻辑,再纳入 P1 浏览器回归。
  • docking_events 明确是“本期必须实现”还是“后续 backlog”;否则测试计划应将其标为未实现验收项。