关于 Maestro
Maestro 是用于 Android、iOS 和 Web 应用 UI 与端到端测试的开源框架,适合测试人员和开发团队。它以 YAML 流程描述测试,并在 CLI 中内置 MCP 服务,支持 Agent 操作实时设备。
主要功能
- 01用 YAML 编写可读测试流程
- 02覆盖 Android、iOS 和 Web
- 03在模拟器与设备上运行流程
- 04自动等待并处理动态界面
- 05CLI 内置 MCP 服务
适用场景
- 01为移动应用编写端到端测试
- 02在 Web 浏览器中验证界面流程
- 03让编码 Agent 操作设备并检查界面
- 04将 YAML 测试流程用于 CI
MCP 相关
Maestro MCP 随 Maestro CLI 提供,可向 MCP 客户端开放实时设备的界面检查、点击、滚动和断言能力。Agent 也可生成并运行 YAML 端到端测试流程。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
提示
测试人员携手合作,精彩由此发生 — 加入 Maestro 社区
Maestro 是一个开源框架,让 Android、iOS 和 Web 应用的 UI 与端到端测试变得简单快捷。
不到 5 分钟即可通过 CLI 手动编写第一个 YAML 工作流,在 Maestro Studio 中直观地构建工作流,或将 Maestro MCP 添加到编码 Agent,以进行 Agent 式 UI 测试。
工作流可在任何模拟器、浏览器或实体 Android 设备上运行。暂不支持实体 iOS 设备。
目录
- 为什么选择 Maestro?
- 开始使用
- Maestro MCP – Agent 式 UI 测试
- Maestro Studio – 测试 IDE
- Maestro Cloud – 并行执行与可扩展性
- 资源与社区
- 参与贡献
为什么选择 Maestro?
Maestro 融合了前代工具(Appium、Espresso、UIAutomator、XCTest、Selenium、Playwright)的经验,并基于 3 项早期决策构建:通过平台的无障碍层驱动应用;以单个二进制文件安装,无需驱动程序或 SDK;并让每个测试都保持为扁平的 YAML 命令列表。
- 易读的 YAML 工作流 – 使用
launchApp、tapOn和assertVisible等命令表达交互。 - 专为编码 Agent 打造 – Maestro MCP 服务随 Maestro CLI 一同提供(
maestro mcp,无需安装其他内容)。Claude Code、Cursor、Codex、Grok Build 或任何 MCP 客户端都能在真实设备上控制应用:检查屏幕、点击、滚动、断言,并在构建过程中检查自身的工作。想要可重复运行的测试时,只需请求生成工作流 — 这就是 Agent 式 UI 测试。 - 与框架无关 – React Native、Flutter、原生 iOS 和 Android、Ionic 以及混合应用都使用相同的命令。Meta 使用 Maestro 测试 React Native 本身,而 Expo 将 Maestro 作为其首选的 E2E 测试平台。
- 跨平台覆盖 – 在模拟器、浏览器和实体 Android 设备上,用一套工作流语法覆盖 Android、iOS 和 Web。
- 稳定性与智能等待 – 内置的抗不稳定能力和自动等待机制,无需手动调用
sleep(),即可应对动态 UI。 - 快速迭代与简单安装 – 只需一行命令即可安装,无需驱动程序、SDK 或依赖项;工作流会直接解释执行,无需编译。5 分钟内即可完成首次测试。
简单示例:
# flow_contacts_android.yaml
appId: com.android.contacts
---
- launchApp
- tapOn: "Create new contact"
- tapOn: "First Name"
- inputText: "John"
- tapOn: "Last Name"
- inputText: "Snow"
- tapOn: "Save"
开始使用
Maestro 要求系统安装 Java 17 或更高版本。运行以下命令即可查看 Java 版本:
java -version
安装 CLI:
运行以下命令,在 macOS、Linux 或 Windows(WSL)上安装 Maestro:
curl -fsSL "https://get.maestro.mobile.dev" | bash
以下链接将引导你完成后续步骤。
- 安装 Maestro(包括常规 Windows 安装方式)
- 将 Maestro MCP 添加到编码 Agent
- 使用 Maestro CLI 运行首次测试(或者直接让你的 Agent 帮你完成)
Maestro MCP – Agent 式 UI 测试
Maestro MCP 内置于 Maestro CLI,可与 Claude Code、Cursor、Codex、Gemini CLI、Copilot、Grok Build 或任何 MCP 客户端配合使用。它为你的 Agent 提供实时设备(模拟器、仿真器或实体 Android 设备),而 Maestro Viewer 会将该设备嵌入编码 Agent 中,并显示每条 MCP 命令的执行过程。
借助 Maestro MCP,你的 Agent 可以直接控制应用:检查屏幕、点击、滚动并断言。构建或修改功能时,它会在设备上检查自己的工作成果。
你的 Agent 也可以编写测试。只需让它创建端到端流程,它就会编写纯 YAML,并反复运行直至通过;该流程会保留在你的代码库中,作为可用于 CI 的确定性测试。
每种编码 Agent 的配置方法请参阅 Maestro MCP 文档。
Maestro Studio – 测试 IDE
Maestro Studio Desktop 是一款轻量级 IDE,可让你通过可视化方式设计和执行测试,无需使用终端。它也免费使用,尽管 Studio 并非开源项目。因此,你不会在这里找到 Maestro Studio 的代码。
- 简单配置 – 只需下载适用于 macOS、Windows 或 Linux 的原生应用。
- 可视化流程构建器和检查器 – 录制交互、检查元素并以可视化方式构建流程。
Maestro Cloud – 并行执行与可扩展性
随着测试套件不断扩大,可在专用基础设施上并行运行数百项测试,将执行时间缩短多达 90%。包含内置通知、确定性环境和完整的调试工具。
Maestro Cloud 的定价完全透明,详情请见定价页面。
资源与社区
- 💬 加入 Slack 社区
- 📘 文档
- 📰 博客
- 🐦 在 X 上关注我们
- ⏯️ 访问我们的 YouTube 频道
参与贡献
Maestro 基于 Apache 2.0 许可证开源,欢迎贡献!
如果你觉得 Maestro 有用,请为此代码库点亮 ⭐,支持这个项目。
Built with ❤️ by Maestro.dev
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。