Maestro 移动 UI 自动化上手指南:3 步装好,5 分钟跑通第一个测试
【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro
Maestro 是一款开源的移动 UI 自动化框架,把端到端(E2E)测试写成一份 YAML 文件,一条命令就能在模拟器、浏览器里跑起来。想象一下:每次发版前你要手动点一遍登录流程,现在可以让 CI 替你点。
它到底能帮你做什么
📦 一条命令装好,免驱动免 SDK
Maestro 是单个二进制文件,不装驱动、不加依赖、没有编译步骤。一行 curl 装完,5 分钟内可以写完并跑通第一个测试,不用先啃半天环境配置。
📜 一份 YAML 描述完整测试流程
点屏幕、输文字、断言某个元素可见,都变成tapOn、inputText、assertVisible这样一行一条的命令。测试脚本人类可读,新同事打开文件就能看懂测试在验什么。
🤖 让 AI 编码代理在真机上操作你的应用
MCP 服务器直接内置在 CLI 里,不用额外安装。编码代理可以检查屏幕、点击、滚动、自己断言结果,写完代码顺手就把界面点一遍验证了。
从零到第一次跑通
第一步:安装 CLI
先确认系统有 Java 17 及以上版本,然后:
curl -fsSL "https://get.maestro.mobile.dev" | bash第二步:写一个最小测试脚本
新建flow.yaml,以 Android 模拟器的系统联系人应用为例:
appId: com.android.contacts --- - launchApp - tapOn: "Create new contact" - tapOn: "First Name" - inputText: "John" - tapOn: "Save"第三步:运行并看到结果
maestro test flow.yaml跑完会在终端看到每一步是否通过。手上没有可测的应用也没关系,先执行maestro download-samples拉取官方示例应用和流程就能练手。
进阶玩法与真实场景
🌐 网页登录流程的 E2E 测试
同一套 YAML 语法也适用于 Web。仓库里 e2e/workspaces/web/ 目录的示例在演示电商站上走完整登录流程,再断言商品列表是否正确显示。测试页面由本地静态服务器提供,e2e/ensure_fixtures脚本负责一键起服务。
代理式 UI 测试
运行maestro mcp,编码代理就能接管设备:边开发功能边在模拟器上点屏验证;验证通过后,它会把操作路径写成 YAML 流程留在仓库里,成为 CI 中可重复执行的确定性测试。MCP 的实现代码在 maestro-cli/src/main/java/maestro/cli/mcp/,可以对照看。
边界与注意事项
- 物理 iOS 设备暂不支持,目前流程运行在 Android 模拟器、iOS 模拟器、浏览器和物理 Android 设备上。
- CLI 依赖 Java 17,版本不满足是第一次运行最容易踩的坑,装完先
java -version看一眼。 - Web 流程的测试页面必须由真实的 HTTP 服务提供,用
file://或data:内联页面会失败,且报错指向"元素找不到",排查起来很绕。
打开终端,把你的第一个流程写出来,5 分钟后那些积压的手动测试就自动跑起来了 🚀 想深入看 CLI 源码,可以从 maestro-cli/ 开始。
【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考