Munk Test
Workflows

批量运行与定时任务

在 Web UI 中一次选择多个测试计划串行执行,或按 cron 表达式创建定时回归任务。

当你已经为一个 App 准备了多份测试计划(plan),Munk Test 支持在 同一台设备 上按顺序批量执行它们;也可以把同样的配置保存为 定时任务,在固定频率自动触发。

这篇文档介绍 Web UI 中的完整操作流程:从 Dashboard 进入批量运行界面、立即提交一次运行、创建与管理定时任务,以及如何在运行记录里查看结果。

你将完成什么

  1. 从 Dashboard 进入「运行与定时任务」界面
  2. 选择 App、设备和多个 plan,立即批量运行
  3. 勾选定时任务选项,配置执行频率并创建 schedule
  4. 在「定时任务」列表中查看、启停与管理已有任务

前置条件

开始之前,请确认:

  1. 本地服务已启动:munk serve --host 127.0.0.1 --port 16888
  2. 已在 Settings 中配置好 AI provider
  3. 已在 Apps 中创建目标 App,并在 Tests 中至少有一份可运行的 plan
  4. 目标设备已在 Devices 中可见且可用

提示:定时任务依赖 munk serve 常驻运行。如果本地服务停止,到了触发时间也不会自动执行。

1. 进入批量运行界面

打开 Web UI 后,在 Dashboard(首页看板) 或 Tests(测试) 页面右上角,点击 「运行测试」,即可进入 /runs/new 页面。

页面标题为 「运行与定时任务」,整体分为三个区域:

  • 上方:任务基础配置(名称、App、设备、是否启用定时任务)
  • 左下:可选 Plans 列表
  • 右下:已选 plan 的执行顺序与提交按钮

运行与定时任务界面

2. 立即批量运行

若你只想 马上跑一轮,不要勾选「启用定时任务」,按以下步骤操作即可。

2.1 选择 App 与设备

  1. 在 App 下拉框中选择目标应用。选择后,左侧会加载该 App 下的 plan 列表,设备列表也会按 App 的平台类型过滤。
  2. 在 设备 下拉框中选择一台目标设备。

2.2 选择多个 Plan

在 「可选 Plans」 区域,点击一个或多个 plan 卡片即可选中。再次点击可取消选择。

提示:当前版本(第一阶段)只支持 同一 app_id 下 的多个 plan,且会 按你点选的顺序串行执行。暂不支持跨 App 混选,也不支持并行跑多个 plan。

你点选 plan 的先后顺序,就是最终执行顺序。每选中一个 plan,卡片右上角会出现序号 1、2、3……

2.3 确认执行顺序

右侧 「执行顺序」 面板会按序号列出已选 plan。提交前在这里核对顺序是否符合预期。

2.4 开始运行

确认 App、设备和至少一个 plan 都已选好之后,点击 「开始运行」。

系统会提交一次 run_plans 批量运行,并自动跳转到该次运行的详情页。你也可以稍后在侧边栏 「运行记录」 中找到这次 run。

2.5 查看运行结果

批量运行会生成一个 父 run,其下按顺序挂载多个 子 run(每个 plan 对应一个)。

在运行详情页你可以看到:

  • 批量汇总:总 plan 数、已完成数、整体判定结果(passed / failed / inconclusive)
  • 子 run 列表:每个 plan 的独立状态,可逐个点开查看 case 级细节、时间线与产物

父 run 适合看整体进度;某个 plan 失败时,进入对应子 run 排查具体 case。

3. 创建定时任务

若希望同一组 plan 按固定频率自动执行,可以在提交时改为创建定时任务。

3.1 启用定时任务

勾选 「启用定时任务」。勾选后:

  • 页面会出现 Cron 调度编辑器
  • 底部按钮文案变为 「创建定时任务」
  • 本次提交 不会 立即触发运行,而是保存一条 schedule 记录

3.2 配置执行频率

Cron 编辑器提供常见调度模板,也支持高级自定义表达式。

模式说明需要配置的字段
每天每天在固定时刻执行时、分
工作日周一至周五执行(默认)时、分
每周每周固定星期几执行星期、时、分
每月每月固定日期执行日期、时、分
高级自定义标准 5 段 croncron 表达式

编辑器下方会实时展示:

  • 当前表达式:例如 0 9 * * 1-5
  • 时区:创建时使用浏览器本地时区(如 Asia/Shanghai)
  • 下次执行:表达式合法后可预览下一次触发时间

提示:后端使用标准 5 段 cron(分 时 日 月 周)校验最终输入。若模板无法表达你的需求,切换到 「高级」 模式直接填写表达式,例如 */30 8-18 * * *(工作日 8:00–18:00 每 30 分钟一次)。

3.3 填写任务名称(可选)

任务名称 为可选项。留空时,后端会自动生成名称(通常基于创建时间)。

建议为长期维护的任务取一个可读名称,例如「Todo nightly 回归」或「发布前冒烟」。

3.4 创建并跳转

配置完成后,点击 「创建定时任务」。成功后页面会跳转到 「定时任务」 列表(/schedules)。

4. 管理定时任务

4.1 定时任务列表

从侧边栏进入 「定时任务」,可以看到所有已创建的 schedule。列表支持:

  • 按 App 筛选
  • 按 状态 筛选(全部 / 已启用 / 已停用)
  • 按 关键词 搜索任务名称、任务 ID 或设备

每条任务卡片展示:名称、启用状态、App、设备、cron 表达式、时区、下次执行与上次执行时间。

定时任务列表

4.2 启用与停用

  • 已启用 的任务会按 cron 在 munk serve 运行期间自动触发
  • 点击 「停用」 后,任务不再调度,下次执行 显示为 -
  • 点击 「启用」 后,系统会重新计算 下次执行 时间

适合在临时维护、设备不可用或调试阶段暂停任务,而不必删除配置。

4.3 查看与编辑详情

点击 「查看详情」 进入单条定时任务详情页,你可以:

  • 查看完整配置与历史触发记录
  • 点击 「编辑」 修改名称、设备、plan 列表与顺序、cron 表达式、启用状态
  • 从历史触发记录跳转到对应的 运行记录 详情

提示:编辑时 App 不可更改。若需要换 App,请新建一条定时任务。

4.4 触发历史

详情页的 触发历史 区域记录每次 schedule 触发产生的 run:包括触发时间、最终状态,以及关联的 operation_id。点击可进入对应批量运行详情,排查某次定时执行是否成功。

5. 执行模型与限制

理解以下规则,有助于正确配置任务并排查问题:

项目行为
Plan 范围仅同一 App 下多 plan
设备单次运行绑定一台设备
执行方式plan 之间 串行,顺序 = 点选顺序
定时触发依赖 munk serve 后台调度线程
全局调度同一时刻只 dispatch 一个 schedule run,避免并发抢占设备
Cron 格式标准 5 段;时区在创建时绑定

6. 常见问题

「开始运行」或「创建定时任务」按钮是灰的?

请检查是否已选择 App、设备、至少一个 plan。若启用了定时任务,还需确保 cron 表达式合法且校验通过。

定时任务到了时间没有跑?

依次确认:

  1. munk serve 是否仍在运行
  2. 任务状态是否为 已启用
  3. 目标设备是否在线、可被 Munk Test 连接
  4. cron 与时区是否符合预期(可在详情页核对 下次执行)

能否跨 App 选择多个 plan?

当前不支持。所有 plan 必须属于同一个 app_id。

多个 plan 会并行执行吗?

不会。当前版本在同一台设备上按顺序逐个执行 plan。

立即运行和定时任务用的配置一样吗?

是的。两者共用同一套 App、设备、plan 列表与顺序;区别只在于提交时是否勾选「启用定时任务」。

7. 与其他能力的关系

需求推荐路径
只跑 一个 plan执行工作流 中的 run plan
只跑 一个 case 做调试执行工作流 中的 run case
围绕代码改动做验证验证代码变更
还没有 plan,需要先创建录制与回放 或 Dashboard 创建计划
目标平台为 iOS 真机iOS 真机配置

接下来看什么?

  • 第一次使用 Web UI?从 快速开始 补齐 App、设备与 plan 准备步骤。
  • 想理解单 plan / 单 case 的 CLI 路径?阅读 执行工作流。