使用 YAML 格式的自动化脚本
“旧版 YAML”,特指由 @midscene/cli 提供的 YAML 自动化协议:工作流顶层使用 tasks,每个 task 使用 flow,平台和 Agent 等运行配置通常也写在 YAML 中,并通过 midscene 命令或包含 files、setup、concurrent 等字段的 YAML 批配置运行。
旧链路已进入维护状态:继续保证现有项目兼容,并处理必要的问题,但不再新增语法、能力、配置项或 CLI 参数。已有用例、批配置、目录结构和 midscene 命令可以保持不变;升级后会通过共享执行内核运行,并生成新的 Test 报告页面。新项目、新增用例和后续能力建设推荐直接使用 Midscene Test。
旧文件和 YAML 批配置使用 midscene,原生 cases/steps 文件和 TypeScript 项目配置使用 midscene-test。两种格式可以放在同一个仓库的不同目录中,但不能在同一个文件或同一次命令中混用。先阅读 Midscene Test 概览,再按照迁移到 Midscene Test转换字段并切换命令。
在大多数情况下,开发者编写自动化脚本只是为了执行一些简单流程,比如检查某些内容是否出现,或者验证某个关键用户路径是否可用。此时维护一个大型测试项目会显得毫无必要。
Midscene 提供了一种基于 .yaml 文件的自动化测试方法,这有助于你专注于编写流程,而不是测试框架。
这里有一个示例,通过阅读它的内容,你应该已经理解了它的工作原理。
你可以在这里找到使用 YAML 脚本做自动化的样例项目
配置 AI 模型服务
下面以豆包 Seed 2.1 Turbo 为例:
将 your-api-key 替换为你的 API Key。
如需使用千问(Qwen)、GLM、Gemini 或 GPT-5 等其他模型,请参考使用模型 API Key。
全部配置项请参考模型配置。
如果需要通过命令行执行 YAML 工作流,请查看 YAML 脚本运行器,了解安装、.env 支持以及 midscene 命令的用法。
脚本文件结构
脚本文件使用 YAML 格式来描述自动化任务。它定义了要操作的目标(如网页或安卓应用)以及一系列要执行的步骤。
一个标准的 .yaml 脚本文件包含 page、browser、web、android、ios、harmony 或 computer 部分配置环境,可选的 agent 部分配置 AI Agent 行为,以及一个 tasks 部分来定义自动化任务。
使用 page: 表示 page-level Agent。使用 browser: 表示一个 Agent 管理 browser 和它的 active page。web: 仍作为兼容入口保留;web.mode: browser 会映射到 BrowserAgent,普通 web: 会映射到 PageAgent。不要在同一份脚本里同时使用 page、browser、web 或已废弃的 target。
agent 部分
agent 部分用于配置 AI Agent 的行为和测试报告相关选项。所有字段都是可选的。
- 适用环境:Web、iOS 和 Android 环境都支持
agent配置 - testId 优先级:CLI 参数 > YAML agent.testId > 文件名
- aiContexts:提供给 AI 的补充信息,例如业务事实、规则、约束或输出要求。如果配置了
default,仅当本次调用和对应 API 都没有自己的 context 时才使用它。单次调用的context覆盖 API 级值,API 级值覆盖default,这些值不会自动合并;空字符串会显式清空继承的用户 context。关于上下文知识的编写和传入方式,参见为 GUI Agent 补充应用知识。 - aiActContext / aiActionContext:
aiContexts.aiAct的已废弃兼容字段,均仍受支持。解析规则为aiContexts.aiAct ?? aiActContext ?? aiActionContext;空字符串也会覆盖低优先级的兼容字段。新 YAML 脚本请使用aiContexts.aiAct。 - 缓存配置:详细用法请参考 缓存功能文档
使用示例
Web target 部分
推荐的 page-level target:
推荐的 browser-level target:

