机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。
[!提示]
当测试人员连接时,会发生伟大的事情 — 加入 Maestro 社区
Maestro 是一个开源框架,使 Android、iOS 和 web 应用的 UI 及端到端测试变得简单快捷。
在 5 分钟内使用 CLI 手写你的第一个 YAML 流程,在 Maestro Studio 中可视化构建流程,或将 Maestro MCP 添加到你的编码代理中以进行代理式 UI 测试。
流程可以在任何模拟器、仿真器、浏览器或实体 Android 设备上运行。目前尚不支持实体 iOS 设备。
为什么选择 Maestro?
Maestro 建立在其前身(Appium、Espresso、UIAutomator、XCTest、Selenium、Playwright)的经验基础上,并加上早期做出的 3 个决策:通过平台的辅助功能层驱动应用,将其作为单个二进制文件安装,无需驱动或 SDK,并保持每个测试为 YAML 命令的平面列表。
- 可读的 YAML 流程 – 将交互表示为命令,如
launchApp、tapOn和assertVisible。 - 为编码代理构建 – Maestro MCP 服务器内置于 Maestro CLI(
maestro mcp,无需安装其他任何东西)。Claude Code、Cursor、Codex、Grok Build 或任何 MCP 客户端都可以在真实设备上控制你的应用:检查屏幕、点击、滚动、断言,并在构建过程中检查自身工作。当你需要可重复的测试时,要求生成一个流程——这就是代理式 UI 测试。 - 框架无关 – React Native、Flutter、本地 iOS 和 Android、Ionic 以及混合应用程序都使用相同的命令。Meta 使用 Maestro 测试 React Native 本身,Expo 支持 Maestro 作为其首选 E2E 测试平台。
- 跨平台覆盖 – Android、iOS 和 Web 使用同一套流程语法,可在模拟器、仿真器、浏览器以及实际的 Android 设备上运行。
- 弹性与智能等待 – 内置波动容忍度与自动等待,无需手动
sleep()调用即可处理动态 UI。 - 快速迭代与简单安装 – 一行安装命令,无需驱动、无 SDK、无依赖;流程被解释执行,因此无需编译步骤。五分钟内完成第一次测试。
简单示例:
# 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 添加到您的编码代理
- 使用 Maestro CLI 运行您的第一个测试(或者只需让您的代理为您运行)
Maestro MCP – 代理式用户界面测试
Maestro MCP 随 Maestro CLI 一起提供,支持 Claude Code、Cursor、Codex、Gemini CLI、Copilot、Grok Build 或任何 MCP 客户端。它为您的代理提供一个实时设备(模拟器、仿真器或实体 Android 设备),而 Maestro Viewer 将该设备嵌入到您的编码代理中,显示每条 MCP 命令的执行过程。
使用 Maestro MCP,您的代理可以直接控制应用:检查屏幕、点击、滚动和断言。当它构建或更改功能时,会在设备上检查自己的操作。
您的代理还可以编写测试。请求一个端到端流程,它会生成普通 YAML 文件,运行直到通过,并将该流程保存在您的代码仓库中,作为 CI 的确定性测试。
每个编码代理的设置请参见 Maestro MCP 文档。
Maestro Studio – 测试集成开发环境
Maestro Studio Desktop 是一个轻量级 IDE,可让您以可视化方式设计和执行测试——无需终端。尽管 Studio 不是开源项目,它仍然免费。因此您在此不会找到 Maestro Studio 的代码。
- 简单设置 – 只需下载适用于 macOS、Windows 或 Linux 的本地应用程序。
- 可视化流程构建器与检查器 – 录制交互操作、检查元素并可视化构建流程。
Maestro Cloud – 并行执行与可扩展性
当您的测试套件增长时,可在专用基础设施上并行运行数百个测试,将执行时间最多缩短 90%。包括内置通知、确定性环境和完整的调试工具。
Maestro Cloud 的定价完全透明,可在定价页面查看。
资源与社区
- 💬 加入 Slack 社区
- 📘 文档
- 📰 博客
- 🐦 在 X 上关注我们
- ⏯️ 查看我们的YouTube频道
贡献
Maestro 是在 Apache 2.0 许可下的开源项目——欢迎贡献!
- 查看 good first issues
- 阅读 贡献指南
- Fork 仓库,创建分支,并提交 Pull Request。
如果你觉得 Maestro 有用,⭐ 请给仓库加星以支持该项目。
Built with ❤️ by Maestro.dev- 本文标题:Maestro - 无痛的移动端和网页端端到端自动化
- 本文链接:https://cn121.com/mobile/mobile-dev-inc-maestro.html
- 原项目:mobile-dev-inc/Maestro 版权归原作者 mobile-dev-inc 及贡献者所有
- 收录信息:本站于 2026-10-07 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 Apache-2.0(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。本站对原文仅作排版与图片地址适配, 并保留原项目的 NOTICE 与署名要求。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 mobile-dev-inc/Maestro。
- 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。