Workflows

批量运行与定时任务

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

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

这篇文档介绍 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,卡片右上角会出现序号 123……

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 AI 连接
  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 路径?阅读 执行工作流