移动应用 活跃维护

Maestro

mobile-dev-inc/Maestro

无痛的移动端和网页端端到端自动化

15966
Stars 标星
984
Forks 分支
69
Watchers 关注
509
Open Issues
Kotlin
主要语言
Apache-2.0
开源协议
1.02 GB
仓库大小
5 小时前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:mobile-dev-inc/Maestro
git clone https://github.com/mobile-dev-inc/Maestro.git
git clone git@github.com:mobile-dev-inc/Maestro.git
README.md main

机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。

[!提示]
当测试人员连接时,会发生伟大的事情 — 加入 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 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 Studio

 

Maestro Cloud – 并行执行与可扩展性

当您的测试套件增长时,可在专用基础设施上并行运行数百个测试,将执行时间最多缩短 90%。包括内置通知、确定性环境和完整的调试工具。

Maestro Cloud 的定价完全透明,可在定价页面查看。

👉 开始你的 7 天免费试用

 

资源与社区

 

贡献

Maestro 是在 Apache 2.0 许可下的开源项目——欢迎贡献!

如果你觉得 Maestro 有用,⭐ 请给仓库加星以支持该项目。

  Built with ❤️ by Maestro.dev
本站来源与版权声明
  • 本文标题:Maestro - 无痛的移动端和网页端端到端自动化
  • 本文链接:https://www.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 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。