1. 10 9月, 2026 1 次提交
    • 陈泽健's avatar
      feat(security): 支持区分安全测试标准版与项目版用例 · 522ab2f6
      陈泽健 提交于
      - 需求与计划:输出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: 's avatarClaude <noreply@anthropic.com>
      522ab2f6
  2. 09 9月, 2026 11 次提交
  3. 08 9月, 2026 14 次提交
  4. 07 9月, 2026 14 次提交
    • 陈泽健's avatar
    • 陈泽健's avatar
      fix(performance): 全库扫描 order_by 兜底排查——26 处两段式改造防 MySQL 1038 · b21f2fe9
      陈泽健 提交于
      针对含大 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: 's avatarClaude <noreply@anthropic.com>
      b21f2fe9
    • 陈泽健's avatar
      docs(handoff): 性能测试记录提交推送闭环(67d87399)+ 剩余待办更新 · bab0b25b
      陈泽健 提交于
      - 文档头部更新:最近提交 67d87399 / 会话窗口 / 状态 → 全部闭环
      - 新增「2026-09-07 续2」:提交推送记录(10 文件 +825/-59,config.py
        hunk 级暂存仅截取 SCREENSHOT_RETENTION_DAYS,排除其他窗口文件)
      - 剩余待办更新:待办1 已闭环,保留 P2 全库 order_by 扫描 / P3 大 JSON 列拆表
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      bab0b25b
    • 陈泽健's avatar
      fix(performance): MySQL 1038 整行排序爆内存修复收官 + 截图清理闭环(7 处两段式 / 真实混合场景 E2E 确认目标机曲线) · 67d87399
      陈泽健 提交于
      待办① 截图清理坏测试修复:
      - 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: 's avatarClaude <noreply@anthropic.com>
      67d87399
    • 陈泽健's avatar
    • 陈泽健's avatar
      feat(recorder): 真录制器与定位质量提升 Phase 1-5(引擎/路由/E2E/前端) · b80abae3
      陈泽健 提交于
      - 真录制引擎 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: 's avatarClaude <noreply@anthropic.com>
      b80abae3
    • 陈泽健's avatar
    • 陈泽健's avatar
      docs(handoff): 会话50 交接——截图瘦身已部署5.44 + PRD/计划文档归档 · 45a247b8
      陈泽健 提交于
      - HANDOFF_UI自动化.md:新增会话50章节(三态截图模式实现/测试/5.44部署验证记录 + 存量清理与5.202/5.60部署待办 + 登录卡死遗留P0)
      - 归档 定时任务截图瘦身 PRD 需求文档 + 执行计划文档(状态置已完成)
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      45a247b8
    • 陈泽健's avatar
      feat(screenshot): 定时任务截图瘦身(三态模式 + JPEG 压缩 + 过期自动清理) · 228c732a
      陈泽健 提交于
      - 默认 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: 's avatarClaude <noreply@anthropic.com>
      228c732a
    • 陈泽健's avatar
      feat(performance): 混合场景超时误读消除与脱敏前缀保留及业务断言指引 · 9ea984a8
      陈泽健 提交于
      - 请求明细页 (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: 's avatarClaude <noreply@anthropic.com>
      9ea984a8
    • 陈泽健's avatar
    • 陈泽健's avatar
      fix(performance): 混合场景CSV强制校验与登录监控记录+目标机监控开启与监控图表X轴修复 · 0aa655a5
      陈泽健 提交于
      混合场景执行安全:
      - 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: 's avatarClaude <noreply@anthropic.com>
      0aa655a5
    • 陈泽健's avatar
    • 陈泽健's avatar
      feat(ui-automation): 会议巡检升级为 navigate 直达用例(3/3 通过) · 1924d77f
      陈泽健 提交于
      - 会议巡检 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: 's avatarClaude <noreply@anthropic.com>
      1924d77f