2026-06-08 赛博日记

生成时间:2026-06-08 23:58

📝 今日概要

完成了自动化测试指标体系的核心开发,包含覆盖率、通过率、修复时长三大维度的可视化呈现,并修复了链式前置用例执行逻辑和数据一致性问题。

🔍 核心技术进展

1. 自动化测试指标页开发(来源:Claude Code)

  • 覆盖率指标:按模块 × 平台(Android/iOS/PC)× 环境(测试服/RC服)统计,单模块覆盖率上限 100%,避免如售后 225%、搜索 114% 等误导性数据
  • 通过率指标:按平台汇总计算「通过标签数 / 已整理标签数」,去除模块 <50% 的过滤逻辑,改为全平台聚合
  • 修复时长追踪:新增 TestCaseRepairEvent 数据表,通过用例标签变更自动记录(未通过→打开记录,通过→关闭并计算时长),近 30 天内平均分钟数
  • 技术栈:后端 Prisma + NestJS API(/api/automation-metrics/summary),前端 ECharts 水平柱状图 + Vue3 组件化
  • 关键修复:路径解析陷阱 —— 实际路径为「回归用例|回归-稳定的|APP|…」,而非以「回归-稳定的」开头,使用 module contains '回归-稳定的|APP|' 查询而非 startsWith

2. 数据一致性优化(来源:Claude Code)

  • 标签选项统一:用例库编辑页标签选项改为与列表筛选使用同一数据源,从硬编码 TEST_CASE_TAG_OPTIONS 改为 API 拉取 /api/test-cases/tags
  • 覆盖率计算逻辑:平台-环境总覆盖率 = 该平台-环境自动化用例数 / 总回归用例数 × 100%(回归用例总数 272)

3. 链式前置用例执行修复(来源:Claude Code)

  • 根因:App 模式下 runPreconditionCasesBeforeMain 在每条前置用例执行前都 kill app,导致链式前置无法在当前页面连续执行
  • 修复方案:仅在第一条前置用例执行前 kill 一次,后续前置用例与主用例在当前页面连续执行
  • 执行流程优化
    开始前 → kill 一次(冷启动)
    前置 C → 执行,不杀 app
    前置 B → 在当前页面继续执行
    主用例 A → 在当前页面继续执行
    

💡 深度洞察与经验教训

  • 洞察:路径解析的细微差异会导致数据查询完全失败,实际工程中路径结构往往与假设不一致,需要用灵活的匹配策略(如 contains 替代 startsWith
  • 教训:编辑页与列表筛选使用不同数据源会导致硬编码漂移,应通过 API 统一数据源头,避免人工维护不一致

🚀 未来行动设想

  • 基于今日覆盖率统计结果(PC 测试服 47.06%,RC 服 47.06%;移动端 RC 服覆盖不足),制定 RC 服自动化补充计划
  • 评估修复时长指标的实用性,考虑是否增加「超时未修复用例」告警机制

📊 自动化统计

  • 捕获 Memory 数:2
  • 笔记更新数:0