Maestro 移动端 UI 自动化测试工具快速上手指南:免费写 YAML 跑 E2E 测试
【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro
Maestro 是一个免费开源的端到端(E2E)自动化测试工具,你用 YAML 文件描述测试步骤,就能在 Android、iOS 和 Web 应用上执行 UI 自动化测试。适合刚接触移动测试的开发者,也适合想把 E2E 用例纳入 CI 的测试工程师。本文带你从安装到第一条测试流程跑通。
五分钟跑起来:一条命令装好 Maestro
Maestro 依赖 Java 17 及以上版本。确认本机已装 Java 后,运行仓库自带的安装脚本即可:
git clone https://gitcode.com/GitHub_Trending/ma/maestro cd maestro && ./scripts/install.sh脚本会把 Maestro 装进~/.maestro并自动写入 PATH,装完重开终端执行maestro --version,能打印版本号就说明安装成功。
第一次验证:跑通你的第一条流程
把测试流程写进一个 YAML 文件,用maestro test命令运行。下面这条流程完成一个典型的登录用例:
- launchApp - tapOn: Username - inputText: standard_user - tapOn: Password - inputText: secret_sauce - tapOn: Login - assertVisible: Products执行成功后终端会输出每一步的结果。注意assertVisible这一行:它是断言而不是操作,界面没出现目标文案,测试就会失败——这正是 E2E 测试最核心的"验证"能力。
真实会碰到的自动化场景
登录注册:最常用的起步用例
绝大多数应用的入口验证都是登录。用launchApp、tapOn、inputText串起操作,用assertVisible确认结果,一个登录回归用例五到十行就能写完。项目里的 e2e/workspaces/ 目录提供了大量现成示例,可以直接拿来改。
界面加载慢:用重试和自动等待稳住测试
网络延迟会让界面加载时间不稳定。Maestro 的命令自带等待能力,多数情况下不用手写 sleep;确实不稳定的操作,用一个retry块包裹,指定最大重试次数即可,失败的步骤会自动重新驱动。
验证界面长什么样:截图对比
除了元素断言,还可以用takeScreenshot在关键节点截图留档,用assertScreenshot把当前界面和基准图做像素对比,适合"改版不能影响布局"这类视觉回归场景。
回归 CI:一条命令批量执行
一个 YAML 是一个流程,一个目录就是测试集。把maestro test接进 CI,每次提交自动在模拟器上回放全部流程,失败时输出截图和日志,定位问题不用复现。
用到团队规模:复用、跨平台与 AI 扩展
- 流程复用:用
runFlow命令引入子流程并传变量,比如把登录抽成公共步骤,几十个用例共享。 - 跨平台差异:给命令加
when条件(如按 platform 区分 Android / iOS),一套流程覆盖两端,不必维护两份文件。 - AI 扩展:Maestro 通过 MCP 协议接入大语言模型,让 LLM 直接操控设备执行自然语言测试指令,实现方式见 maestro-cli/src/main/java/maestro/cli/mcp/。
效率清单
| 问题 | 答案 |
|---|---|
| 需要装什么依赖? | Java 17+,安装脚本自动配置其余部分 |
| 流程文件要不要编译? | 不用,YAML 即时解释执行,改完直接跑 |
| 元素怎么定位? | 文本、ID、层级关系、正则等多种方式 |
| 测试失败能看到什么? | 每一步截图、日志和失败原因 |
| 怎么查完整命令参考? | 官方文档 docs.maestro.dev |
完整的命令手册、元素定位语法和 CI 集成方案,见 Maestro 官方文档;有具体问题也可以到社区提问,官方仓库的 CONTRIBUTING.md 同样适合想参与贡献的同学。
【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考