test-spec.md 4.5 KB

定时任务运维日志监控测试计划

status: complete updated: 2026-07-20

1. 验证目标

复用 V4 Job 模块 84/84、前端定向测试 13/13、Admin Reactor 42/42 和生产构建基线,增量验证 V5 的组合筛选、安全详情、导出白名单、连续失败计数、任务概览和近 24 小时监控摘要。

2. 验证矩阵

优先级 范围 验证方式
P0 consecutive_failures、组合索引和导出配置 Flyway 合约测试、placeholder 扫描
P0 列表/详情不返回 jobParam,导出排除结果与异常 Mapper XML 和 VO 合约测试
P0 成功清零、失败递增、跳过不改变 JobExecutionLifecycleServiceTest
P0 时间、状态、来源组合筛选 JobMapperXmlContractTest
P0 任务概览和 24 小时摘要 Service/Mapper 聚合测试
P1 筛选、详情、导出、全局摘要和任务概览 前端定向 Vitest、ESLint、生产构建、浏览器检查

3. 必跑命令

  • Job 模块:mvn -Penable-tests -pl forge-framework/forge-plugin-parent/forge-plugin-job -am test
  • 前端单测:Job 日志与任务列表相关 Vitest。
  • 前端检查:V5 定向 ESLint、pnpm build
  • 静态检查:Mapper XML、Flyway placeholder、Service 查询规范、冲突标记、导出敏感字段和 git diff --check
  • 聚合验证:mvn -pl forge-admin-server -am package -DskipTests

4. 边界

  • 不启动真实 MySQL、Redis、Admin 或 Quartz 集群;Flyway、真实接口数据和运行态聚合由开发环境验收。
  • 浏览器检查只验证本地前端可达时的结构和交互,不把模拟数据表述为真实后端联调。
  • 本轮不增加告警、权限、Webhook、复杂 BI 或数据库分区。

5. 执行结果

验证项 结果
V5 后端定向测试 15/15 通过
Job 模块全量测试 94/94 通过
前端定向 Vitest 16/16 通过
前端定向 ESLint 通过
前端生产构建 通过
Admin Reactor 42/42,package -DskipTests 通过
Mapper XML / Flyway / 冲突标记 / diff 静态检查 通过
桌面与窄屏生产预览 入口 200、启动壳正常、无脚本或静态资源错误;任务页因后端未启动未覆盖

6. 环境验收项

  • 在已启动 MySQL、Redis 和 Admin 的开发环境执行 V1.0.44,并检查 forge_schema_history、新增字段、索引、字典和导出配置。
  • 使用管理员登录后验证日志组合筛选、安全详情、Excel 导出、任务概览和近 24 小时摘要。
  • 构造成功、失败、跳过记录,核对连续失败计数和运行中日志不被留存清理删除。

7. V5.1 增量验证

编号 场景 预期
V5.1-P0-01 列表开始时间 优先展示 startTime,缺失时依次回退 triggerTimescheduledFireTime
V5.1-P1-01 主列表层级 默认不展示执行器和结束时间,状态与来源组合展示,详情操作保持权限控制
V5.1-P1-02 详情层级 右侧抽屉分开展示概览、时间线、结果/异常和默认折叠的技术信息
V5.1-P1-03 响应式 桌面和窄屏下筛选、表格操作及抽屉内容不重叠
V5.1-P1-04 前端质量 目标 Vitest、目标 ESLint、生产构建和空白检查通过
source ~/.nvm/nvm.sh && nvm use v20.19.0
pnpm exec vitest run src/views/system/__tests__/job-log-query.test.js
pnpm exec eslint src/views/system/job-log-list.vue \
  src/views/system/job-config.vue \
  src/views/system/job-log-query.js \
  src/views/system/__tests__/job-log-query.test.js
NODE_OPTIONS=--max-old-space-size=8192 pnpm build

本轮不修改后端,不启动 MySQL、Redis、Quartz 或 Admin;浏览器检查仅在现有可用前端预览与登录条件允许时执行,不把未覆盖的真实业务数据表述为已验收。

V5.1 执行结果

  • TDD:新增开始时间回退测试首次执行 1 failed / 4 passed,失败原因为 resolveJobLogStartedAt is not a function;实现后最终 5/5 通过。
  • 目标 ESLint:四个 Vue/JS/测试文件无输出、退出码 0。
  • 生产构建:Node v20.19.0 下通过,8725 个模块完成转换,生成 job-log-list 产物。
  • 静态检查:git diff --check 和新增/修改目标文件尾随空白检查无输出。
  • 浏览器检查:发现工作区已有 5173 与 8580 监听进程,但当前沙箱无法访问本地监听端口,且 Chromium 因 MachPort 权限被拒绝无法启动;未把桌面/窄屏真实渲染标记为通过,也未停止用户已有服务。