- 08 9月, 2026 10 次提交
-
-
由 陈泽健 提交于
- 三形态统一标题「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 3 次提交
-
-
由 陈泽健 提交于
- 新增 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>
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
sut-explore 全量盘点首页 24 入口 + 抽屉 38 入口,唯一可落地缺口=视讯设备 (旧 drawer+click 用例 headless 下历史执行全部中断/失败)。已升级为 meetingV3 TerminalMaintenance navigate 直达 3 用例(页面访问/表格/树形 筛选),DOM 特征:列头带腾讯后缀、树选中节点 .is-current、当前无数据 行=0 用 element_count_min expected=0 兼容。探测脚本 7 个沉淀。 「会议运维 6 + 待办巡检 2 + 视讯设备 3」11 用例回归 100% 通过,已同步 三台服务器(5.44/5.202→410、5.60→412,无重启)。 Co-Authored-By:Claude <noreply@anthropic.com>
-
- 01 9月, 2026 9 次提交
-
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 后端 HttpClient 新增 login_with_credentials(username,password) 与 _extract_token 静态方法 - 复用 captcha uuid + SHA256 加密 + 签名;不写入 _tokens 缓存(token 由 executor 管理) - 执行引擎 per-VU 状态:_vu_tokens Dict[int,str] + _vu_tokens_lock + _vu_login_failed - _ensure_vu_token 异步幂等(run_in_executor 包裹同步登录),失败记入 _vu_login_failed - _resolve_csv_credentials 按 global_thread_idx 分配 CSV 行(idx % len 循环复用) - _mix_worker 启动各自登录;登录接口进随机池命中后替换该 VU 自己的 token - _send_request 新增 bearer_token 可选参 + 返回 Optional[str](登录 2xx 提取新 token) - _build_headers bearer_token 优先于 self._token;登录目标 bearer_token="" 签名且无 Authorization - _is_login_target 支持 url_override(识别随机池中的登录接口) - _run_mix 校验:CSV 未启用/缺 username/password 列/账号数 < 并发数 → 拒绝执行 - execute() per_vu_login 时跳过共享预登录 - Model/Schema 增加 per_vu_login 字段(默认 False)+ _ensure_columns 自动迁移 - 前端 types perVuLogin + TaskList.vue「每虚拟用户独立登录」开关(仅 mix 显示) - 单测 TestPerVuLogin 13 条(各自token/重登替换/失败处理/CSV校验/共享回归) - 已部署 5.60(含 performance_tasks.per_vu_login 自动迁移);端到端由用户手动验证 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 删除会话47~36历史章节、时间线表格、关键约束/配置/启动运维/文档索引、老待办清单 - 保留会话48双档(sut-explore缺口补齐 + 定时任务看门狗修复)核心记录 Co-Authored-By:Claude Fable 5 <noreply@anthropic.com>
-
由 陈泽健 提交于
- 执行引擎新增 _run_mix/_mix_worker:concurrency 个 worker 协程 每次迭代按权重 random.choices 选接口发请求,前置登录复用 token - ScenarioApiConfig 新增 weight 字段(默认 1,weight=0 不参与随机), scenario_type 支持 mix;权重归一化边界健壮(sum<=0 回退均匀) - 前端 TaskList 新增「混合场景(Mix)」下拉 + 权重编辑列 + 序列化回填; ReportPanel mix 蓝色标签 + 接口明细表 - 修复执行时长膨胀(实测 120s→285.7s 约 2.4×):目标机 SSH 同步采样 阻塞事件循环,改 loop.run_in_executor 丢线程池;TARGET_MONITOR_ENABLED 默认改 false。复验 durationActual=123.96s,请求比例≈权重(34/23/43%)零 4xx - 新增 mix 单测 11 条(权重归一化/冒烟) Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
新增 _PRD_混合场景压测.md 需求文档与 _PRD_混合场景压测_计划执行.md (含 6.1 短时长端到端验证 PASS、6.2 执行时长膨胀根因修复复验、6.3 前端部署验证); HANDOFF_性能测试.md 更新至 2026-09-01 会话进度。 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 盘点确认 7 个缺口功能,生成 8 个可执行 UI 用例写入 SQLite(generate_gap_cases.py 幂等) - 会议运维 6 用例 navigate 直达 + Tab 切换断言一次全绿 - 待办巡检 2 用例:monitor 直达 URL 内层路由竞态定位(整页加载后固定落设备列表页、 外层 monitor= hash/navPayload 均无法切 Checklist、_ensure_micro_app_loaded 误判就绪) → 改走首页「巡检报表」入口点击 [id="data_list.inspect_report"] 绕过,100% 稳定 - 探测脚本沉淀:probe_gap_modules(_v2~v4)/probe_gap_meeting_tabs/probe_monitor_checklist_rerun /probe_sut_home_entries/probe_overview_modules/probe_funcenter - HANDOFF_UI自动化.md 记录会话48 全流程 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
A 修复(看门狗失败执行也生成报告): - scheduler_service.py 新增 _has_any_case_results 辅助函数 - UI/安全两条路径报告条件 run_ok -> run_ok or _has_any_case_results - 解决 5.44 每日任务连续 4 次看门狗失败、报告目录无一文件 B 修复(定位并消除卡死点): - B1: case_results 写入 start_time(由实际耗时回推),支持定位卡死用例 - B2: 用例级硬超时兜底(_case_start_mono + case_remaining_seconds, 步骤/等待/微应用轮询均受用例剩余时间约束,防单用例无限挂起) - B3: Chromium 崩溃自动恢复(崩溃标记检测 + 重建页面复用 context 保留登录态,失败步骤起重试,每用例最多恢复一次) 部署配套: - deploy/docker-compose.yml: app 容器日志轮转 50m x 5 - deploy_fix_560.py: 增加 scheduler_service.py / execution_service.py 上传 Co-Authored-By:Claude <noreply@anthropic.com>
-
- 31 8月, 2026 3 次提交
-
-
由 陈泽健 提交于
记录『自然语言指明用例步骤 → 完整顺利执行』目标的现状、根因(执行器能力不对等 / keyword_matcher 不穿透 micro-app)与已尝试的优化(Phase 1-5) Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
更新 HANDOFF_UI自动化.md 顶部会话 47:记录性能测试模块目标机监控 增强(Batch A 多 PID 服务级聚合 + MySQL 趋势)与修复(Batch B JSTAT 瞬时 CPU 采样,实测与 top 300%+ 一致)、5.60 部署、测试与推送状态; 独立交接详见 HANDOFF_性能测试.md Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
更新 HANDOFF_性能测试.md:记录 Batch B(JSTAT 瞬时 CPU 采样修复)背景、 修复方案、验证结果、5.60 部署与交接待办;更新最近提交/会话窗口/状态头 (指向 ad4163bb 已推送 origin/platform-auto-test) Co-Authored-By:
Claude <noreply@anthropic.com>
-