- 11 9月, 2026 3 次提交
-
-
由 陈泽健 提交于
1. 后端容错:在 cases.py / batch.py 中增加 _decode_json_field,防御 MySQL 中历史双重编码 JSON 字符串导致的 500 校验异常; 2. 部署配置:更新 deploy/docker-compose.yml,放开 seccomp:unconfined 并优化线程配置; 3. 文档沉淀:新增/更新《HANDOFF_UI自动化_用例修复.md》及相关问题排查与计划执行文档(188 条历史失败用例全部闭环、JSON 双重编码修复记录等)。 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 后端:create_execution 补传 name 参数 + run_execution 端点使用 async_session_maker 独立会话(修复 IllegalStateChangeError) - 前端:ApiCaseList.vue 集成模块树选择器 - 文档:HANDOFF_接口测试.md + PRD 模块化改造文档 + 事故记录 - 验证:GET /api/api-test/cases total=5,5/5 判定一致 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
## 交付 - 后端执行器信号控制(pause/resume/stop + _wait_if_paused 门禁) - 服务层 pause_task/resume_task/cancel_task + 批量控制 - 路由 /tasks/{id}/pause|resume|cancel + /batch/... 新端点 - WS perf_paused/perf_resumed 广播 - 前端 TaskList/MonitorPanel/BatchMonitor/ProjectDetail 就地控制 - 30 项暂停/取消单元测试 + 前端 npm run build 通过 Co-Authored-By:Claude <noreply@anthropic.com>
-
- 10 9月, 2026 9 次提交
-
-
由 陈泽健 提交于
录制用例若从中间页面开始(首页用例未含 navigate 步骤),执行时 快速探测失败「选择器不在 DOM」。修复:recorder_engine._handle_report 在 session.steps 为空时自动追加 navigate 步骤(用录制起始 _initial_url), 保证录制用例回放时先导航到起始页。 - recorder_engine.py:_run_session 记录 session._initial_url;_handle_report 空 steps 时自动补齐起始 navigate 步骤 - 新增执行计划文档:Docs/PRD/问题处理/录制器/_执行计划_用例数据修复_导航缺失.md - 问题处理:执行失败-无法点击元素-选择器不在DOM(case_d6c8a858ae0544fa956f75fd8329d5f3) Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
feat(ui-recorder): 用例录制器全屏放大 + 菜单迁移改名(requestFullscreen 修复 + 5.60 实机复验闭环) Co-Authored-By: Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 门口屏模拟器 P0~P3 完成(MQTT 修复 + 动态 X-SIGN + result 解密 + MQTT-HTTP 联动) - 部署到 5.60/5.44/5.202,容器内真实 Broker 联动验证 PASS - 同步 P0 修复(mqtt_manager.py)回源码树 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 头部最近提交更新为 beb0f4af(已推送) - 2026-09-10 任务小节补充提交推送状态与网络超时小插曲 - 状态行更新:JSON 双重编码 500 已修复验证 Co-Authored-By:
Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 新增 fix_560_json_double_encoding.py:修复5.60 MySQL中67条安全用例 tags/steps/config 双重编码(sqlite3原生读取JSON列为文本字符串, 部署脚本再次json.dumps导致MySQL JSON列存成字符串值而非数组/对象, Pydantic TestCaseResponse校验报 input_type=str) - 验证:67条全部修复,JSON_TYPE均为ARRAY/OBJECT,API恢复200 - deploy_security_cases_560.py 新增 _parse_json_field():加载本地用例 时先json.loads还原JSON列,防止复发 - HANDOFF_安全测试.md:新增S18/S19踩坑 + 2026-09-10修复记录 + P5-P7待办 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 重构 Dashboard.vue 为深色 Hero 横幅(通过率 conic-gradient 环形,≥90绿/≥70橙/<70红) - 快捷操作上浮至第二位(4 图标色块卡片,hover 上浮),统计指标并入横幅 - 移除模块用例分布饼图,执行趋势折线图 span=24 全宽展示(260px,切换保留) - 保留全宽最近执行 7 列表格;loadStats 仅并发 overview+trend - PRD 需求/计划执行文档同步去饼图方案并校验通过;补记 HANDOFF 会话68 - 前端 build 零报错(vue-tsc + vite) Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
-
由 陈泽健 提交于
- 需求与计划:输出PRD需求文档与计划执行文档,归档至Docs/PRD/需求文档/安全测试/ - 数据库迁移:test_cases、executions、scheduled_tasks 表新增 project_type 字段,_ensure_columns 自动平滑加列并赋默认值 standard - 后端业务: - 用例管理支持按 project_type 筛选与持久化 - 安全测试执行支持 project_type 显式指定及按选选用例自动推断(standard/project/mixed) - 安全定时任务支持按 project_type 精确隔离调度执行 - 前端交互: - 用例管理、定时任务、执行中心新增项目类型筛选与状态标签展示 - 用例与定时任务表单支持标准版/项目版单选配置 - 交接文档:沉淀本次改动与验证成果至 HANDOFF_安全测试.md Co-Authored-By:Claude <noreply@anthropic.com>
-
- 09 9月, 2026 11 次提交
-
-
由 陈泽健 提交于
- 补充容器重启中断 result 兜底 + TPS 0 分析 + 前端图表 UI 双修复部署验证 - 新增 force push 事故记录与恢复措施 - 日期更新至 2026-09-09 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
-
由 陈泽健 提交于
修复 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 3 次提交
-
-
由 陈泽健 提交于
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>
-