- 09 9月, 2026 10 次提交
-
-
由 陈泽健 提交于
-
由 陈泽健 提交于
修复 5.60 混合场景执行被容器重启导致的 result referenced before assignment(已预初始化 result + CancelledError 显式捕获) 修复目标机 Memory Usage 渲染函数源码(改 computed) 修复执行机资源图表窄条(@change + nextTick resize) 更新问题处理与计划执行文档 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- fix(dingtalk): 新增形态4停止通知(_interrupt_info + build_interrupt_message) 定时执行被取消/中断不再推假低通过率报告,手动取消不@人;附前端取消二次确认弹窗 - fix(execution): 启动恢复/看门狗中断的 pending 用例 failed→skipped,避免污染通过率 - fix(recorder): noVNC 实时画面 iframe 协议 ws://→http://,修复 5.60 有头模式打不开 - chore(5.60验证): sync_544_fixed_snapshot.json 快照 + sync_case_to_60.py 逐条同步, 15条用例在5.60全部验证通过(3条ID在5.60不存在);乱码修复(pymysql utf8mb4) - docs: 会话66/67 进度回填 HANDOFF_UI自动化.md;合并远程会话64/65 服务日志/模块清理成果 Co-Authored-By:
Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- HANDOFF_UI自动化.md 更新:会话65 数据统计弱覆盖补齐闭环记录 (backstage 侧边栏归位治愈深链竞态、round7/round8 修复脚本、18/18 全通过) - backend/data/test_platform.db 同步:数据统计深度用例入库 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
后端采集链路(TargetLogMonitor): - 新增 executors/target_log_monitor.py:SSH 单条复合命令扫描 8 个 Java 服务日志, tail 500 行 + 用例时间窗口 grep 夹逼,单次采集 0.2~0.5s,失败降级不阻塞执行 - case_result 模型新增 server_log_errors JSON 字段(database.py 启动补列兼容) - execution_service 用例循环记录精确起止窗口,采集结果随回调落库 + WebSocket 广播 - executions 路由新增 GET .../results/{case_id}/server-logs 独立拉取接口 - config 新增 TARGET_LOG_MONITOR_ENABLED(默认开)/ TARGET_LOG_TAIL_LINES=500 前端可视化(ServerLogDrawer): - 新增 ServerLogDrawer.vue 暗黑控制台风格日志抽屉(服务下拉徽标/级别过滤/搜索/复制) - Execution 展开行新增「服务端异常」列 + 「服务日志」按钮,StepDetailPanel 联动入口 - executions.ts 新增 getServerLogs API 封装 验证与部署: - 本地 8001 重启后 API 实测通过(结构/404 分支),pytest 471/471,前端 build 零报错 - 5.60 已部署验收(后端 6 文件 MD5 核对 + dist 95 文件 + settings 实读) - 踩坑沉淀:config.py 并行部署覆盖回滚、.env 对 os.getenv 写法不生效、 PLATFORM_BASE_URL 需部署后核对(HANDOFF 详录) Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
根因:任务级开关 scheduled_tasks.dingtalk_notify=0(调度器步骤 5b 被跳过); 5.44 另有部署脚本遗漏 app/models/scheduled_task.py,ORM 无字段导致开关不可见不可存。 修复(deploy_fix_dingtalk_notify_44_202.py,已部署验证通过): - SFTP 补发 5.44 models/scheduled_task.py + routers/scheduled_tasks.py - 同步两台 services/dingtalk_notify_service.py(09-08 卡片版式) - SQL 开启两台目标任务 dingtalk_notify=1 + docker restart + 健康检查 - 验证:GET /api/scheduled-tasks 返回 dingtalk_notify=true,测试消息发送成功 文档:问题处理 + 执行计划归档至 Docs/PRD/问题处理/执行中心/,HANDOFF 会话 63 沉淀 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
-
由 陈泽健 提交于
-
由 陈泽健 提交于
- 新增 12 条深度 UI 用例(会务统筹×3 + 会务工单×3 + 预定数据×3 + 巡检报表×3),第 3 轮执行 exec_8b0332dc 12/12 全量通过 - headless 微前端冷挂载修复:等待锚点改 :has-text 文本(inner route 挂载信号)+ 双等待点(文本 30s + canvas/.el-table 15-30s) - 会务统筹 3 条旧用例直达 URL 修正 ConferenceManage→ConferenceManagement(旧 URL 404) - 巡检报表走首页 inspect_report 入口点击,避开 monitor 直达 URL 竞态 - 用例已同步 5.44/5.202/5.60 三台 MySQL(各 INSERTED 12) - backend/data/test_platform.db 解决 stash 冲突(取含 12 条新用例版本,与 HEAD 差异=+12 用例+3 条 URL 修复,无丢失) - HANDOFF_UI自动化.md 记录会话 62(会话 61 TargetLogMonitor 章节保留归档) Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
- 08 9月, 2026 14 次提交
-
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
阶段1: deploy/Dockerfile + docker-compose 安装 x11vnc/websockify/Xvfb/noto-cjk 字体 阶段2: backend/app/config.py 新增 XVFB_DISPLAY/XVFB_SCREEN/NOVNC_PORT 配置 阶段3: backend/app/services/recorder_engine.py 有头模式启动 Xvfb + DISPLAY + noVNC 投流, 提取 _resolve_headed_mode() 支持单测,启动失败自动降级无头 阶段4: frontend/src/views/Recorder.vue 录制中实时画面 iframe 接入 noVNC(vnc.html) 阶段5: backend/tests/test_recorder_e2e.py 新增 TestXvfbNovnc 4 项防回归测试(15/15 通过) 阶段6: 部署 5.60 实机验收通过(Xvfb→x11vnc→websockify 全链路 + 中文渲染 + 录制会话闭环) 阶段7: HANDOFF_UI自动化.md 会话60 归档 + PRD 需求/执行计划/问题处理文档归档 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- reports.py list_reports:状态筛选由仅 completed 扩展为 completed/failed/cancelled,并返回 status 字段 - Reports.vue 触发方式列新增失败/取消状态标签(failed红色 / cancelled信息色) - HANDOFF_UI自动化.md 记录会话56(钉钉通知改版 + 5.60 部署)+ 会话55历史状态归档 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- _问题处理_5.44定时任务90条失败用例聚类分析.md + _计划执行_5.44定时任务失败用例逐条修复.md - _问题处理_报告中心历史失败取消执行不可见无报告.md + _执行计划_修复报告中心历史失败取消执行不可见.md Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 三形态统一标题「UI自动化定时报告」(原「UI自动化告警」),仅以 emoji 区分:
✅ 全部通过 /⚠ ️ 存在失败 /🚨 执行异常 - 不打印失败用例明细:版面为分区卡片式(标题/任务/被测系统/汇总统计/失败提示/耗时/链接),块间 \n\n 分隔适配钉钉 markdown 折叠行为 - 保留一句失败统计提示(❌ 存在 N 项失败用例,请及时查看报告),@手机号仅失败/异常形态携带 - _shrink_message 简化为整体截断兜底;测试更新为 29 项覆盖新版面 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- _migrate_legacy_executions() 中 existing.scalar() 双调用:Result.scalar() 取完首行即关闭 result,二次调用抛 ResourceClosedError——legacy 迁移一旦完成,此后每次启动回填必炸,导致拆表从表存量回填永远不执行;改为单次取值 legacy_count - 补提交 test_performance_satellite_tables.py 14 用例(ea2a90cb 提交信息已声明但文件漏入库) - HANDOFF_性能测试.md 记录拆表部署 5.60 闭环:12 从表建成 + 存量回填 101 行 + JSON 'null' 字面量校验口径 + 部署/验证脚本清单 Co-Authored-By:
Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 新增 POST /api/reports/notify-dingtalk/{execution_id}:查执行记录 → 复用 notify_execution_result 构建三形态消息 → 加签发送;执行不存在 404 / Webhook 未配置 400 - 报告中心操作列新增「发通知」按钮(仅 UI 自动化类型行展示,单行 loading 防重复点击,ElMessage 反馈结果) - PRD + 执行计划文档归档;已部署 5.60 验证(404 探测 + 健康检查通过) Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 新增 dingtalk_notify_service:build_sign(HMAC-SHA256 加签) / 三形态消息构建(
✅ 报告 /⚠ ️ 告警 /🚨 异常)/ 失败明细折叠与超长保护 / send_markdown 发送 - 定时任务新增 dingtalk_notify 开关:执行完成后自动推送钉钉报告通知 - 系统设置提供报告钉钉通知配置管理(report_webhook_url / report_secret / report_at_mobiles,secret 脱敏) - 新增 PLATFORM_BASE_URL 配置(消息中查看完整报告链接用) - database._ensure_columns 旧库升级补列(scheduled_tasks.dingtalk_notify / dingtalk_configs.report_*) - PRD + 执行计划文档归档 Docs/PRD/需求文档/执行中心/ Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 新增 12 个从表模型(task/exec/report 三系):csv_content、resource_summary、 target_resource_summary、transaction_summary、api_summary、login_summary、task_summaries - service 层双写镜像 + 读从表优先/主表列回退(_sync_*_satellites / _load_*_satellite_fields) - 启动幂等存量回填 _backfill_satellite_tables(仅从表缺行时写入,二次启动不重复) - database.py _ensure_columns 兜底创建从表(SQLite 旧库升级 + MySQL create_all 均已覆盖) - 新增 test_performance_satellite_tables.py 14 用例(upsert/双写/读优先/回填/CRUD 联动) - 登录汇总 login_summary 透出 API(router/schema/前端类型),兼容 per-VU 独立登录统计 - HANDOFF 性能测试文档记录会话进度与 5.60 部署验证 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- playwright_executor: 登录成功后显式 navigate 到首页并等 .block,避免 登录态步骤因首页 DOM 未渲染而失败 - execution_service: error_message 按 60000 字节截断、steps log/error 按 20000 截断,规避 MySQL TEXT 65535 上限;pass_rate 改用滚动整数计数, 不再读过期 ORM 列(MissingGreenlet) - config: 补 PLATFORM_BASE_URL 远程字段(钉钉报告链接用) - HANDOFF_UI自动化: 记录会话53(5.44 P0 修复 + 5.60 部署验证) Co-Authored-By:Claude Code <noreply@anthropic.com>
-
- 07 9月, 2026 15 次提交
-
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
针对含大 JSON/TEXT 列 + 整行 ORDER BY 的列表查询做两段式改造(防 MySQL 1038 Out of sort memory),含非 performance 模块: - services 12 文件:case/api_test/execution(2处)/report/scheduler/security/security_report/deploy/device_sim/login_template/api_preset/performance(漏网点2处) - routers 5 文件:report_template/reports/scheduled_tasks/security_scheduled_tasks/stats - 白名单 13 处归档(聚合查询/无大列表),pytest 423 passed 零回归 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 文档头部更新:最近提交 67d87399 / 会话窗口 / 状态 → 全部闭环 - 新增「2026-09-07 续2」:提交推送记录(10 文件 +825/-59,config.py hunk 级暂存仅截取 SCREENSHOT_RETENTION_DAYS,排除其他窗口文件) - 剩余待办更新:待办1 已闭环,保留 P2 全库 order_by 扫描 / P3 大 JSON 列拆表 Co-Authored-By:
Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
待办① 截图清理坏测试修复: - config.py 新增 SCREENSHOT_RETENTION_DAYS(默认 3 天)定期清理配置 - main.py lifespan 启动/停止截图定期清理循环(cleanup_screenshots_loop) - cleanup_service.py 新增定期清理循环实现 - 新增 test_screenshot_cleanup.py(10 个用例),修复原坏测试 - 5.60 已部署:截图 1.2G → 1.1M(1090 文件 / 1132MB) 待办② 真实混合场景 E2E 确认目标机监控曲线: - 混合场景执行 perf_1c72c087(1804 快照,1797 带 targetResource) - 报告页目标机资源 CPU/Memory/Load 曲线 + 指标卡渲染正常 - Java 进程瓶颈定位:ubains-meeting-api(CPU avg 377.4%/max 800%) + ubains-meeting-inner-api(424.2%/max 800%) 待办③ 克隆任务清理:无遗留,无操作 MySQL 1038 修复第三轮(报告查看 500,累计 7 处两段式): - get_report() 模式2:最新执行记录先取 id 再回查整行 - get_report() 模式3 / _build_report_from_execution():快照先取 id 按序回查 - get_task_snapshots():快照分页两段式(保留 offset/limit) - run_project_all() / get_project_task_ids():任务 id 两段式 - 5.60 部署验证:GET /tasks/{id}/report 原 500 → 200 问题处理/计划执行文档 4 篇归档(任务列表 500 + 报告查看 500) Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 真录制引擎 recorder_engine.py:会话线程 + CAPTURE_JS 捕获 + expose_binding 上报 + WS 实时推送; 修复主循环事件饥饿(page.is_closed() 不泵事件队列 → page.evaluate("1") 真实 CDP 往返) - recorder.py /save 三重 P0 修复(孤儿 except 语法错误 + 用例创建漏出 else 分支 + case_service NameError),重写为 CaseService.create + config 强制 auto_login 注入 - element_locator /pages 页面注册表查询(直达 URL 下拉数据源) - 前端:Recorder.vue 真录制器页面(暂停=丢弃新捕获,保存走本地列表)、 websocket.ts modulePrefix 支持、stepParser/IntentStepEditor 语义化步骤、elementLocate API - 新增 test_recorder_e2e.py 10 测试(本地 mock 页 + 独立 SQLite 全离线隔离); 后端 408/408 全绿,前端 npm run build 零报错 - config.py:RECORDER_ENABLED / RECORDER_SESSION_TTL / RECORDER_CANDIDATE_LIMIT (同文件截图保留天数配置属其他窗口,本次未含) - 文档:真录制器 PRD + 计划执行 + 语义化用例创建指南;HANDOFF_UI自动化 会话 51 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- HANDOFF_UI自动化.md:新增会话50章节(三态截图模式实现/测试/5.44部署验证记录 + 存量清理与5.202/5.60部署待办 + 登录卡死遗留P0) - 归档 定时任务截图瘦身 PRD 需求文档 + 执行计划文档(状态置已完成) Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 默认 failure_only 模式(仅失败步骤截图,质量 60) - _should_capture_step 三态判定 + screenshot=False 总开关优先 - start() 自动 _cleanup_expired_screenshots(SCREENSHOT_MAX_AGE_DAYS=14) - scheduler_service 注入 screenshot_mode=failure_only 测试:pytest tests/test_screenshot_mode.py 15/15 pass + 后端全量 403/403 pass Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 请求明细页 (RequestDetailPanel.vue):在 errors_only 采集模式下顶部展示黄色提示条,防止「全是超时」误读 - 报告页 (ReportPanel.vue):执行汇总补充展示明细采集模式(on/errors_only/off) - 后端脱敏 (performance_executor.py):Authorization 头保留前 20 字符 + ***,便于核对 token 已携带,其余敏感字段仍整体脱敏 - 后端服务 (performance_service.py/schemas):报告摘要序列化输出 request_detail_enabled 字段 - 需求与问题处理文档:新增排查报告、执行计划、业务断言指引,更新 HANDOFF 交接记录 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
混合场景执行安全: - performance_service 新增 _validate_run_preconditions:mix 未启用 CSV / CSV 空 / 账号数<并发数 → HTTP 400(run_task 与 run_task_async 双入口) - performance_executor _run_mix:CSV 校验提升到 per_vu_login 之外(兜底封死直调路径), 列映射缺 username/password 时 warning,per-VU 缺列拒绝 - 登录三路计入 MetricsCollector(共享预登录 / per-VU 启动登录 / 随机池重登, api_summary 归「登录」),登录 QPS/成功率可见 - TaskList.vue handleRun mix 无 CSV 前置拦截;schema + types 新增 csvParameterizationEnabled/csvContent/perVuLogin 字段 - CSV 模板改为前端 XLSX 动态生成(不再依赖部署静态文件) 目标机监控开启: - docker-compose 设置 TARGET_MONITOR_ENABLED=true(根因:5.60 容器默认关闭, 混合场景全程无目标机资源数据) 监控图表 X 轴修复: - MonitorPanel 折叠面板零尺寸画布 init 后 resize 兜底(X 轴被压成窄条根因) - 资源/网络/目标机图表增加 dataZoom(inside + slider),保留用户缩放窗口 - 运行中连续 10s 无目标机数据自动展开空态面板展示原因 - 窗口 resize 时全部图表自适应 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 会议巡检 3 条 drawer+click 弱用例升级为 meetingV3 Meetinginspection navigate 直达(登录页重挂载 + 12s 日历渲染稳定) - 页面无 .el-table/.el-pagination,断言改用 .el-calendar 日历标题 + 周期/会前巡检按钮(旧弱用例断言对象失效根因) - generate_meeting_inspect_cases.py 幂等生成(页面访问/日历数据/日历导航),删旧弱用例 ID e161109d/17aade9c - 探测结论固化:monitor/voice/meetingV2 微应用登录态不跨 hash 保留,运维区域/告警列表/转录列表/会议审批保持 drawer+click - 探测脚本 5 个沉淀 + HANDOFF 会话50 记录;已同步三台 5.44/5.202→413、5.60→415(无重启) Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
同步远程 HEAD(03ee164c,并行会话 performance 提交叠加其后) Co-Authored-By:
Claude <noreply@anthropic.com>
-
- 02 9月, 2026 1 次提交
-
-
由 陈泽健 提交于
- 新增 backend/scripts/check_exec_report_0902.py:验证 5.44/5.202 定时任务执行状态、报告文件与 next_run_at 推进 - .gitignore 中 backend/scripts/check_*.py 增加例外,允许 check_exec_report_0902.py 纳入版本控制 Co-Authored-By:Claude <noreply@anthropic.com>
-