ZY Action Platform验证与质量

验证与质量

三层次验证:Go 单测 → 真实冒烟(真实 PostgreSQL)→ 浏览器 E2E(Playwright)。冒烟脚本位于 action/temp/smoke_*.sh,E2E 位于 action/web/e2e/

单测 285 个测试函数 Foundry 冒烟 23/23 Apollo 冒烟 26/26 Gotham 冒烟 44/44 E2E 5+5 PASS

单元测试覆盖

go test ./platform/... ./products/... 全绿(cached 结果),共 285 个测试函数、40 个测试文件,覆盖底座与四产品:

范围覆盖包
平台底座audit / auth / connector(含 exec_write、sqlite_integration)/ crypto / llm / vector(milvus/turbovec/disk)
P1 AIPnlq(意图/RAG/Text2SQL/执行/可视化)
P2 Foundryontology / semantic / metric / pipeline / lineage / writepath 六包(含毫秒级乐观锁 TestUpdatedAtMillisecondPrecision
P3 Apolloagent / hub(期望状态/漂移/bundle 验签)
P4 Gothamgraph / analysis / resolution / geo / timeline / pattern / reports / abac / eventbus / fusion / views

真实冒烟结果(真实 PG chatbi_action_dev

P1 AIP 全链路冒烟(smoke_aip)

登录 → 数据源 → 元数据 → NLQ 查询 → 图表 → 审计全链路通过。"查询订单总金额" 实测:intent=data_query(confidence 0.5)、SQL=SELECT SUM(sales_amount) AS total_sales FROM orders;、rows=[["6470.5"]]、chart_type=metric_card;审计 NLQ_QUERY SUCCESS

P2 Foundry 冒烟 23/23 PASS(smoke_foundry.sh)

本体/版本/YAML/语义/指标/Action 幂等与乐观锁/管道/血缘/审计全链路:

  • 版本状态机 draft→review→merge;YAML 导出导入;影响分析
  • 语义查询 rows=5;semantic search 命中 order;指标查询 total_gmv=6470.5(与 AIP 口径一致)
  • Action 执行 success rows_affected=1;幂等重放 replayed from_run=7;乐观锁冲突(并发修改 409)
  • 管道 run success rows_in=5 rows_out=5;血缘 trace nodes=2 edges=1;审计 ACTION_EXECUTE 记录

P3 Apollo 冒烟 26/26 PASS(smoke_apollo.sh)

  • 期望状态登记/激活、bundle 构建 + 验签 trusted(SM3/SM2 + signer 白名单)
  • 渠道/策略、部署 DAG 推进、漂移检测与收敛
  • Spoke Agent 上报:agent report upsert spoke_agents status=online
  • 审计事件:DEPLOYMENT_SYNC=4 DRIFT_DETECTED=4 DRIFT_RECONCILE=4

P4 Gotham 冒烟 44/44 PASS(smoke_gotham.sh)

图/分析/接入/解析/地图/时间轴/模式/报告/ABAC/联动全链路:

  • 图节点/边 CRUD 幂等、expand/path/centrality/community 图算法
  • ingestion 接入、resolution 实体解析(同身份证合并等)
  • 地图 bbox/radius、时间轴 range/aggregate、模式规则命中告警
  • 报告 HTML/PDF/docx 导出、ABAC 评估(deny 一票否决 + trace)
  • 多视图联动:views sessions A(graph)=4 B(map)=5、filter 广播 target_count=1(region=北京 命中)

浏览器 E2E(Playwright)

产品Spec结果覆盖
P2 Foundryfoundry_e2e.spec.mjs5/5 PASS(msedge,10.5s)登录/本体创建/版本合入/YAML/Action
P3 Apolloapollo_e2e.spec.mjs5/5 PASS登录+导航/部署总览(DAG)/部署与漂移/bundle 验签/Spoke Agent
P1 AIP前端骨架 + API 冒烟通过Login/DataSources/ChatWindow 构建与 API 全链路
P4 Gotham前端六页面通过图/地图(Leaflet)/时间轴/联动/报告/ABAC 页面 + 44 步 API 冒烟联调

E2E 运行:cd action/web && npx playwright test(msedge 通道);截图与日志在 action/web/e2e/

已知限制与遗留项

状态说明 / 规避
Milvus 本机不可用 → disk设计内降级vector 三后端自动降级,本机无 Milvus 服务时落到磁盘向量引擎(日志告警,不影响跑通)
gopls stale 诊断IDE 已知编辑器 gopls 偶发陈旧诊断,以 go build ./... / go test 为准
CGO_ENABLED构建约束跨平台/信创构建设 CGO_ENABLED=0(SQLite 走 glebarez 纯 Go 驱动;build_release.bat 内为 1 以支持本机 cgo 组件)
OOM -p=2偶发大数据量下偶发内存压力,可用 -p=2 控制 Go 测试/构建并行度规避
无外网环境限制涉及联网路径(Serper 搜索、LLM、embedding)以 mock 单测覆盖;真实联调需外网补充冒烟
connector 高级类型预留allow-list 默认仅放行 MYSQL/SQLSERVER/POSTGRESQL;SQLITE 需显式授权;MySQL/SQLServer 方言迁移为后续可选增强
Gotham 未入网关已知Web 网关(80)当前代理 AIP/Foundry/Apollo;Gotham 直连 18083 或 Vite 环境变量分流
SQLite 降级断言已知PG 不可用降级 SQLite 后,冒烟脚本的 psql 断言(RBAC/审计)不可用

开发记忆与经验沉淀

可复用问题与踩坑方案沉淀在 action/wiki/dev_memory/(中文,结论式),例如:

  • foundry_sqlite_optimistic_lock.md — demo SQLite updated_at 秒级盲区 → 模板改毫秒精度 + 补单测。
  • foundry_fe_be_parity.md — 前端与后端成对交付的教训(后端路由就绪即补前端页面)。
  • bat 脚本 GBK+CRLF、括号块内全角括号、taskkill WOW64 问题等(见各记忆文档)。