1. 26 8月, 2026 2 次提交
    • 陈泽健's avatar
      feat(perf-report): AI 分析文档格式优化 + A/B 下载交互 + lint 修复 · a1ef3ffa
      陈泽健 提交于
      - 正式文档排版: AI Word 导出增加安全封面页、静态目录页、正文标题去重、
        章节分页、表格斑马纹、页眉页脚/页码及 Word 兼容样式(exportReport.ts)
      - A 方案: 下载发起后 ElMessageBox 确认提示, 展示实际文件名
      - B 方案: 新增 downloadArtifact store, 右下角浮动卡片支持再次下载/关闭,
        ObjectURL 在替换/关闭/卸载时释放并可惰性重建
      - 安全边界: 封面仅含任务名/分析类型/来源/生成时间, 不写入任何凭据
      - lint: 新增 ESLint 9 flat config + vue/ts 解析器, 0 errors
      - 验证: 前端 build/lint 通过, 后端 16 passed, 部署 5.60 容器 healthy
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      a1ef3ffa
    • 陈泽健's avatar
      feat(perf-report): 报告导出排版质量优化 + 导出文件名使用任务名 · 521ead34
      陈泽健 提交于
      - FR-1 图表尺寸控制:图表 img width=700 解决 Word 溢出,保留 pixelRatio:2 高清
      - FR-2 指标卡片 Word 兼容:flexbox 改 table 网格布局(核心/执行机/目标机/MySQL)
      - FR-3 表格列宽比例:5 张表全部 colgroup 控制列宽
      - FR-4 专业排版:h1 21pt 主题色底边线 / h2 分隔线 / 表头隔行变色 / mso-* Word 兼容
      - FR-5 分页控制:page-break-inside/after avoid + 快照表前强制分页
      - FR-6 合并报告同步:ProjectReport 同步全部排版优化
      - 导出文件名:单任务用任务名、合并报告用项目名(sanitizeFilename 清洗非法字符)
      - 新增 PRD 文档:报告导出排版质量优化需求文档 + 计划执行文档
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      521ead34
  2. 25 8月, 2026 7 次提交
    • 陈泽健's avatar
      fix(perf-report): 补全报告导出缺失模块与图表 + 接口名URL去前缀 · 8f417389
      陈泽健 提交于
      - buildReportHtml() 补全6个缺失模块(执行机资源/目标机资源/Java进程/MySQL/事务步骤/接口统计)
      - buildReportHtml() 补全5个缺失图表(网络趋势/目标机资源/Java进程CPU/瀑布图)
      - exportPdf() 图片加载动态等待(5s超时兜底),避免PDF空白图片
      - buildExportHtml() 新增Word兼容mso-样式 + 打印分页控制
      - ProjectReport 导出补全 min/max RT + 收发字节指标
      - 接口名展示:后端 _strip_url_prefix() + 前端 displayApiName() 兜底去前缀
      - 新增 PRD 文档:报告导出质量优化需求文档 + 计划执行文档
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      8f417389
    • 陈泽健's avatar
      merge: 合并 origin/platform-auto-test 性能测试模块(DB 二进制冲突手工合并) · a154ce32
      陈泽健 提交于
      冲突处理(backend/data/test_platform.db):
      - 以远程库为基础:保留 performance_executions 新表、performance_tasks/
        snapshots 新列 schema、device_report_logs 数据
      - test_cases/executions/case_results 三表整表覆盖为本地版本
        (远程相对 base 零改动;本地含 315 用例 + 14 条薄弱模块断言对齐
        + R7 执行记录 exec_111da393 31/31 passed)
      - 合并后 integrity_check ok,关键数据抽检通过
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      a154ce32
    • 陈泽健's avatar
      fix(executor): 直达导航接入 _do_navigate + micro-app reload 兜底 — 薄弱模块 31 用例 R7 通过率 100% · a63d090c
      陈泽健 提交于
      - _navigate_to_target_page 弃用裸 goto,改走 _do_navigate 完整路径
        (跨微应用 warm-up + _goto_full_page + _ensure_micro_app_loaded + _verify_micro_app_stable)
      - _ensure_micro_app_loaded 新增阶段4 reload 兜底:body 为 NO-BODY 时
        page.reload()(探测证明 localStorage 方案 A/B/C 全部失败,reload 唯一有效)
      - 14 个薄弱模块用例步骤断言对齐(monitor 9 + 消息通知 3 + 信息窗 1 + 通讯录 1)
      - 沉淀 5 个探测/复刻脚本至 backend/scripts/
      - R7 执行 exec_111da3930d734bc7a4a2ea009336558f:31/31 通过 100%,799.7s
      - 同步更新 HANDOFF_UI自动化.md(会话 39/38 记录)
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      a63d090c
    • 陈泽健's avatar
      docs(performance): 更新 HANDOFF 会话进度 · f3fd0bae
      陈泽健 提交于
      新增「请求详情接口名显示修复 + URL 去前缀需求」最新会话更新章节,记录 api_name 字段映射排查结论、用户 URL 去前缀需求及实现建议、E2E 验证结果与待办交接
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      f3fd0bae
    • 陈泽健's avatar
      docs(performance): 请求详情/报告导出 PRD + 部署问题处理文档 + HANDOFF 会话进度 · 6c925627
      陈泽健 提交于
      - 新增 PRD _PRD_请求详情查看与报告导出优化 及计划执行文档
      - 新增问题处理/执行计划文档:监控无数据、报告 MySQL 缺失、请求详情无数据的排查修复记录(含 5.60 端到端自测结果)
      - HANDOFF 更新本次会话进度与提交记录(feat 59cc11a1)
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      6c925627
    • 陈泽健's avatar
      feat(performance): 请求详情察看结果树 + 报告导出 Word/PDF/JSON + 采集标志修复 · 59cc11a1
      陈泽健 提交于
      - 新增 PerformanceRequestDetail 表与任务/执行级采集开关(off/on/errors_only),执行器按模式采集请求报文,超限自动截断
      - 新增请求明细两段式查询 API(列表 + 详情),规避 MySQL sort buffer 爆内存
      - 报告页新增「请求详情」Tab:筛选(状态码簇/成败/关键字/耗时区间)+ 分页表格 + 70% 详情抽屉(完整请求/响应报文、复制按钮)
      - 项目报告页任务明细新增「查看请求详情」入口(深度链接 activeTab=details)
      - 「导出 JSON」升级为「导出 Word / PDF / JSON」下拉(exportReport.ts,ECharts base64 嵌入)
      - 修复 run_task_async() 创建执行记录缺失 request_detail_enabled 导致采集标志恒为 off 的 bug
      - 新增端到端自测脚本 probe_e2e_rerun.py(5.60 实测:200 条明细 + MySQL 快照 + 报告汇总全部通过)
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      59cc11a1
    • 陈泽健's avatar
      feat(performance): 目标机新增 MySQL 服务资源监控 · a3148868
      陈泽健 提交于
      - target_resource_monitor.py: 通过 docker exec 采集 umysql 容器指标(连接数/线程/慢查询/Buffer Pool 命中率/流量),与系统资源并行采集,失败不影响系统指标
      - performance_executor.py: 报告构建时汇总 MySQL 指标到 target_resource_summary
      - performance.ts: 新增 TargetResourceData.mysql 类型定义
      - MonitorPanel.vue: 新增 MySQL 指标卡片 + 实时趋势图(连接数/活跃线程)
      - performance_service.py: 报告摘要填充任务关联字段(target_url/method/mode/scenario_type)
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      a3148868
  3. 24 8月, 2026 2 次提交
    • 陈泽健's avatar
      feat(performance): 性能报告 AI 分析 + 执行跳转闭环与多项修复 · 702af195
      陈泽健 提交于
      - 新增独立 PerformanceAiService(Claude CLI 3 级回退链 + 规则兜底分析)
      - 新增单次分析 / 多版本对比 2 个 API 端点
      - 报告页嵌入 AI 分析卡片(总体评价/关键发现/瓶颈/建议/资源/对比)
      - 前端新增 AiAnalysisResponse 类型 + getAiAnalysis/getAiComparison API
      - 执行跳转闭环、捕获输出查询、执行记录双条僵死 running 等遗留修复
      - 更新性能测试 HANDOFF 与问题处理文档
      - 数据库 test_platform.db 同步更新
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      702af195
    • 陈泽健's avatar
      feat(performance): WebSocket 批量进度订阅端点 + 项目详情实时进度条 · cf359994
      陈泽健 提交于
      - 后端新增 /ws/batch/{batch_id} 端点:订阅 perf_batch_{batch_id} 组,
        连接时从 DB 推送当前批次状态快照,ping/pong 保活
      - performance_service 新增 _broadcast_progress():同时推送全局 perf_batch
        与批次专属 perf_batch_{batch_id} 两组
      - 前端新增 createPerfBatchStream() WS 连接封装
      - ProjectDetail.vue 批量执行实时进度条闭环(连接/刷新/完成自动刷列表/关闭断开)
      - types/performance.ts PerfBatchProgress 补 partially_failed/cancelled 类型
      - TaskList.vue 文案回归纯中文,仅保留 TPS/Error Rate 英文+中文
      - 新增场景测试数据 burst_task.json / endurance_task.json + FieldTip 帮助组件
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      cf359994
  4. 22 8月, 2026 1 次提交
    • 陈泽健's avatar
      feat(performance): 性能测试场景增强 + 目标机监控 + 事务处理 + 多项修复 · 6ab2c268
      陈泽健 提交于
      - 新增两种压测场景:burst(瞬时并发/集合点同步)和 endurance(长稳/多接口/CSV 参数化)
      - 新增目标机资源监控(SSH 采集 CPU/内存/负载)+ Java 进程监控
      - 新增事务处理时间(Transaction)多步骤串行 + 瀑布图/步骤明细表
      - 新增批量执行监控页 BatchMonitor + 合并报告页 ProjectReport
      - 新增项目管理(项目卡片/批量执行/一键执行)
      - 报告页增强:场景标签(burst橙色/endurance红色)、apiSummary 多接口明细表
      - 指标体系增强:P95/标准差/Apdex/延迟/连接时间/字节数/峰值TPS/错误分类
      - 修复 3 个 P0:批量详情 API 500、残留 completed 状态、status_2xx 缺失
      - 修复 body 字符串存储导致 4XX
      - 新增 curl 导入、自定义登录凭据、读取系统配置 URL
      - 压缩 HANDOFF 文档至 154 行
      - 新增配套 PRD 需求文档与问题处理文档
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      6ab2c268
  5. 21 8月, 2026 5 次提交
    • 陈泽健's avatar
      docs(handoff): 精简 HANDOFF_UI自动化文档 + 更新会话37状态 · f4892d6c
      陈泽健 提交于
      - HANDOFF_UI自动化.md: 735→216行精简,删除已完成会话详情与P0/P1清单
      - page_url_mapping.json: 补全 asset_info 完整配置 + 新增 meeting_room_list 页面注册
      - playwright_executor.py: element_count_min 新增 micro-app 8s 轮询兜底
      - 新增 sut-explore skill、generate_asset_info_cases/generate_meetingroom_cases/sync_to_560_full 脚本
      - 数据库新增 10 个用例(7 会议室列表 + 3 资产信息)
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      f4892d6c
    • 陈泽健's avatar
      feat(template): 会议模板+参会人模板直达URL化 + 执行器修复 · 6aa026c4
      陈泽健 提交于
      - page_url_mapping.json 注册 meeting_template / participant_template / todo_list 3页
      - 9个模板用例从click导航改为navigate直达URL模式
      - 修复playwright_executor.py element_count_min total未初始化BUG
      - 修复contains断言timeout过长(120s→5s)
      - 3轮迭代本地执行9/9通过100%
      - 更新HANDOFF_UI自动化.md会话36记录
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      6aa026c4
    • 陈泽健's avatar
      docs(device-sim): 更新 HANDOFF 记录设备模拟模块部署到 5.60 · 21d65661
      陈泽健 提交于
      - HANDOFF_设备模拟.md:新增会话 M(2026-08-21 部署 5 个后端文件到 5.60,
        含并行化/token 回退修复/无纸化 token+消息拉取),全链路验证通过
        (grep 校验 + 4 台批量启动 + 540 台全部停止),并同步会话 I/K 部署状态
      - HANDOFF_性能测试.md:同步指标体系增强已部署 5.60 状态
      - frontend/src/api/performance.ts:修复 listTasks/listProjects
        camelCase→snake_case 参数名转换(project_id/project_type 后端过滤生效)
      - Docs/PRD/性能测试:新增问题处理与执行计划文档(项目内任务过滤、
        项目类型 Tab 过滤、批量执行跳转监控页 PRD)
      - backend/scripts/restart_and_verify.py:新增 5.60 容器重启+健康检查脚本
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      21d65661
    • 陈泽健's avatar
      docs(handoff): 更新会话35 P1 遗留待办闭环记录 · 26dbafbf
      陈泽健 提交于
      - 新增会话35 当前状态概要(verify 字段统一、断言补全、前端验证编辑、二级菜单注册)
      - P1 待办标记完成(含子项详情)
      - 会话历史时间线新增会话35 条目
      - 文档索引新增 P1 遗留待办 PRD 与执行计划
      - 更新状态头与最近提交为 466b9f40
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      26dbafbf
    • 陈泽健's avatar
      feat(handoff): P1 遗留待办处理 — 验证字段统一、断言补全、定位器优化 · f61441a6
      陈泽健 提交于
      - 智能定位同步设置 verify 顶层字段(dialog/element_visible/text_visible),打通执行器消费链
      - 执行器 _do_assert 新增 body_not_contains 断言分支
      - 执行器 _do_fill 增加 scroll_into_view_if_needed() 滚动兜底
      - 前端 CaseStepEditor 独立 VERIFY_TYPE_OPTIONS(8 种 verify 类型)
      - 前端 IntentStepEditor 新增 verify 折叠编辑区(round-trip 保留)
      - 前端 stepParser 新增 verifyMethodToVerify() 兼容转换函数
      - page_url_mapping.json 注册 19 个二级菜单(match_rules 识别)
      - 新增 PRD 需求文档与计划执行文档
      - HANDOFF 更新:标记 3 个 P0 映射问题已修复
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      f61441a6
  6. 20 8月, 2026 15 次提交
  7. 19 8月, 2026 8 次提交
    • 陈泽健's avatar
      fix(scheduler): 定时任务立即执行未生成执行记录 + 取消即停中断后台线程 · bdac1140
      陈泽健 提交于
      5.44 前端「定时任务」页点击执行后,执行中心始终不生成新执行记录。
      根因:自动调度触发后 task_id 卡住 _running_tasks,所有手动点击被静默吞掉
      (return None),返回 200 但无新 execution。取消执行也不中断 Playwright 线程,
      run_execution 阻塞在 worker_thread.join() 上,全局锁数小时不释放。
      
      1. **scheduler_service.py** — run_task_once(task_id, manual=False) 新增
         manual 参数,手动触发绕过任务级 _running_tasks 守卫(仍受全局锁约束)
      
      2. **scheduled_tasks.py** — POST /{task_id}/run 改为同步预检:
         全局锁占用 → 返回 status:skipped + running_execution_id;
         空闲 → manual=True 触发,返回 status:triggered
      
      3. **execution_service.py** — 取消信号机制:
         request_cancel / is_cancel_requested / clear_cancel_requested 线程安全函数;
         cancel_execution 置 cancelled 后调用 request_cancel;
         run_all_cases_sync 用例循环开头检查并中断剩余用例;
         实时进度回调 _persist_case_result 按用例 commit
      
      4. **playwright_executor.py** — 步骤边界检查取消请求:
         execute_step 重试循环开头查 is_cancel_requested → 置 _cancel_requested
         → break 退出重试;最终状态设为 skipped
      
      5.44+5.202 已部署(deploy_scheduled_fix.py),容器 healthy
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      bdac1140
    • 陈泽健's avatar
      feat(performance): 新增压测请求体字段唯一性配置功能 · 687deef2
      陈泽健 提交于
      - 后端模型 performance_tasks 新增 unique_fields JSON 字段,支持 suffix/template 两种唯一化策略
      - 新增 UniqueFieldRule Schema,任务创建/更新/响应均包含 unique_fields
      - TemplateResolver 新增 apply_unique_fields() 及 JSON Path 路径解析/赋值工具函数
      - PerformanceExecutor 在发送请求前按配置对 body 字段自动生成唯一值
      - 前端 TaskList.vue 新增可折叠面板,支持添加/编辑/删除唯一性字段规则
      - 新增测试 test_unique_fields.py 覆盖路径解析、赋值、唯一值生成场景
      - 新增 PRD 需求文档与执行计划文档
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      687deef2
    • 陈泽健's avatar
      feat(device-sim): 门口屏补全全局配置定时拉取接口 + 更新 HANDOFF · 695460eb
      陈泽健 提交于
      - door_token_client: 新增 EX_GLOBAL_CONFIG_API_PATH + get_ex_global_config()(GET, query companyNumber)
      - door_simulator: 定时循环扩充为 3 个接口(消息列表/人脸页面/全局配置)
      - 全局配置接口实测验证通过(HTTP 200 + success=true)
      - 公司编号来源:token 响应 token.companyNumber → topic_params.company_id
      - 新增 PRD + 执行计划文档
      - 更新 HANDOFF 设备模拟会话 G 记录
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      695460eb
    • 陈泽健's avatar
      fix(device-sim): 门口屏人脸页面接口补传 companyNumber 参数 · 39cfb764
      陈泽健 提交于
      - 实测发现 getTodayMeetingFacePage/encrypt 接口 body 必须含 companyNumber,
        仅传 conferenceId 返回 A0002 缺少参数,补齐后返回 200 OPERATION_SUCCESSFUL
      - door_token_client: get_today_meeting_face_page 新增 company_number 参数并加入请求体与动态签名
      - door_simulator: 调用时从 topic_params.company_id 取 company_number
      - performance: description 字段改为 Optional,None 时置空串,修复 curl 导入保存 422
      - PRD/执行计划:更新实测参数结论与任务完成状态
      - HANDOFF:更新提交状态
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      39cfb764
    • 陈泽健's avatar
      fix(device-sim): 修复启动无纸化后门口屏停止 + MQTT 连接复用 + 消息列表定时拉取 · 003ee7c9
      陈泽健 提交于
      修复无纸化批量启动导致门口屏设备 UI 显示停止的三重问题:
      - MQTT connect() 复用存活连接,不断开重建(核心修复)
      - 启动时重置 DB 中残留的 running 状态为 stopped
      - 减少 start_simulator 锁粒度,IO 移出锁范围
      
      连带修复:
      - database.py 补列列表追加 default_topic_params
      - paperless/central/client 模拟器 __init__ 统一 token_api_host 参数
      
      新增:
      - 门口屏消息列表定时拉取(getMsgPageList/encrypt + AES 加密)
      - 门口屏人脸页面定时拉取 PRD 文档与执行计划
      - deploy.41 部署脚本与 docker-compose
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      003ee7c9
    • 陈泽健's avatar
      fix(performance): 修复 curl 导入后保存任务 422 及错误信息不可读 · d529f528
      陈泽健 提交于
      - schema: qps_target/ramp_up/step_concurrency/step_duration 改为 Optional(default=None),Pydantic v2 拒绝 null 时不再 422
      - service: create_task() 补齐 Optional 压测参数默认值(100/10/[]/60)
      - frontend: 新增 extractApiError() 渲染 Pydantic 错误数组为可读 `字段: msg` 文本
      - frontend: 修复 stepConcurrency 数组双重包裹(编辑回填时 Array.isArray 判断)
      - frontend: handleCurlParse 错误处理改用 extractApiError()
      - docs: HANDOFF_性能测试.md 记录本次会话进度
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      d529f528
    • 陈泽健's avatar
      feat(device-sim): 门口屏模拟器启动时调用 getTokenInfoByToken 获取 token · ff749e33
      陈泽健 提交于
      新增 DoorTokenClient(固定 X-SIGN + regUdid 派生 + 响应解析),
      TokenPool 登记池保证批量场景 appToken 不重复(来自导入授权码,不可自动生成);
      DoorSimulator.start() 接入 token 获取并回填 topic_params(company_id/room_id/conference);
      base_simulator / create_simulator / start_simulator 透传 token_api_host(来源 EnvConfig)
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      ff749e33
    • 陈泽健's avatar
      fix(performance): 修复curl导入解析失败[object Object] · 0e4ead5b
      陈泽健 提交于
      - 修复 curl 导入 422:CurlParseRequest 补全 model_config alias 映射(前端 camelCase curlCommand → 后端 curl_command)
      - 兼容 Windows CMD curl 语法:新增 _preprocess_cmd_style() 处理 ^ 续行符与 ^" 转义引号
      - 新增 -b/--cookie 参数支持,Cookie 保留到 headers 与 cookie 字段
      - 新增 4 个单元测试覆盖新修复点(15 passed)
      - 新增问题处理文档与执行计划文档
      Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
      0e4ead5b