{ "enabled": true, "name": "ETL FULL TEST", "description": "一键执行 ETL 全流程前后端联调:启动服务 → Playwright 浏览器提交任务 → 实时监控 → 性能报告 → 黑盒一致性测试 → 服务清理。详细步骤参考 .kiro/specs/[ETL]-fullstack-integration/tasks.md", "version": "1.1.0", "when": { "type": "userTriggered" }, "then": { "type": "askAgent", "prompt": "执行 ETL 全栈联调运维任务。先读取 `.kiro/specs/[ETL]-fullstack-integration/tasks.md` 获取完整步骤细节,然后严格按以下 6 大步骤依次执行。全程使用 Playwright 浏览器模拟真实用户操作,不直接调用 API。\n\n## 步骤 1:服务启动与健康检查\n- 用 controlPwshProcess 启动后端:uvicorn app.main:app --host 0.0.0.0 --port 8000,cwd=apps/backend/\n- 用 controlPwshProcess 启动前端:pnpm dev,cwd=apps/admin-web/\n- 等待服务就绪,验证 http://localhost:8000/docs 和 http://localhost:5173 可访问\n- Playwright 打开 http://localhost:5173,登录(用户名 admin,密码 admin123)\n- 验证登录成功后跳转到任务配置页,侧边栏菜单正常渲染\n\n## 步骤 2:浏览器操作 - 任务配置与提交\n- 在任务配置页(/)依次操作:\n - Flow 选择 api_full(API → ODS → DWD → DWS → INDEX)\n - 处理模式选择 full_window\n - 时间窗口模式设为【自定义】,开始 2025-7-01,结束为当前时间\n - 窗口切分【按天】,切分天数 30\n - 勾选 force_full(强制全量)\n - 任务选择区域全选 is_common=True 的常用任务(共 41 个)\n- 确认 CLI 命令预览区显示完整参数\n- 点击【直接执行】按钮(SendOutlined 图标),触发 POST /api/execution/run\n- 确认提交成功提示,记录 execution_id\n\n## 步骤 3:执行监控与 DEBUG\n- 导航到【任务管理】页面(/task-manager)\n- 在【队列】Tab 确认任务状态为 running\n- 点击 running 任务行,打开 WebSocket 实时日志流抽屉\n- 按需以 30秒~20分钟 弹性间隔检查页面状态\n- 检测日志中的 ERROR / CRITICAL / Traceback / Exception / WARNING 关键字\n- 连续 20 分钟无新日志输出则报超时警告\n- 任务完成(success/failed/cancelled)时停止监控\n- 收集所有 ERROR 和 WARNING 日志行及上下文,分析错误类型\n- 如果任务失败,切换到【历史】Tab 查看完整执行详情\n\n## 步骤 4:性能计时与报告生成\n- 在【历史】Tab 点击已完成任务查看执行详情\n- 通过 GET /api/execution/{id}/logs 获取完整日志\n- 从日志提取每个窗口切片(30天)的开始/结束时间,计算耗时\n- 识别 ODS / DWD / DWS / INDEX 各阶段耗时,标注 Top-5 瓶颈\n- 生成综合联调报告到 {SYSTEM_LOG_ROOT}/{date}__etl_integration_report.md\n- 报告包含:执行概要、性能报告(各切片耗时对比、Top-5)、DEBUG 报告\n\n## 步骤 5:黑盒数据一致性测试\n- 运行全链路检查器:uv run python scripts/ops/etl_consistency_check.py(cwd=C:\\\\NeoZQYY)\n - 脚本自动从 LOG_ROOT 找最近 ETL 日志,从 FETCH_ROOT 读 API JSON\n - 连接数据库(PG_DSN)逐表逐字段比对:API vs ODS、ODS vs DWD、DWD vs DWS\n - 白名单:ETL_META_COLS、SCD2_COLS 排除;API 空字符串 vs DB None 视为等价\n - 报告输出到 ETL_REPORT_ROOT\n- 检查 FlowRunner 内置一致性报告(ETL_REPORT_ROOT 下已自动生成)\n- 对比两份报告结论是否一致\n- 将黑盒测试结果摘要追加到步骤 4 的综合报告中(通过/失败统计、白名单差异、失败表清单)\n\n## 步骤 6:服务清理\n- 关闭 Playwright 浏览器实例\n- 停止 uvicorn 后端进程(controlPwshProcess stop)\n- 停止 pnpm dev 前端进程(controlPwshProcess stop)\n- 报告联调完成状态\n\n## 环境与规范要求\n- 环境变量从根 .env 加载(load_dotenv),缺失必须报错,禁止静默回退\n- 数据库使用测试库(PG_DSN 指向 test_etl_feiqiu)\n- 报告路径遵循 export-paths 规范,从环境变量读取\n- 需要的环境变量:PG_DSN、FETCH_ROOT、LOG_ROOT、ETL_REPORT_ROOT、SYSTEM_LOG_ROOT" }, "workspaceFolderName": "NeoZQYY", "shortName": "etl-fullstack-integration" }