Maestro 使用指南:YAML 写移动端端到端测试
【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro
画面里是这样:你连上一台设备,终端敲一条maestro test flow.yaml,几行 YAML 驱动应用走完"启动、点击、输入、断言"一串动作。Maestro 是开源的移动 E2E 测试框架,用可读的 YAML 写测试流程,覆盖 Android、iOS 与 Web 应用,适合想把跨平台回归测试快速落地、又不想深入底层驱动框架的测试与开发工程师。
项目定位
Maestro 是一个命令行框架 + YAML 流程解释器,不是可视化测试平台:你写流程文件,用 CLI 执行,没有编译环节。需要说明的是,可视化测试编辑器 Maestro Studio 是另一个闭源客户端——可免费下载,但代码不在本仓库里。如果你期望一个拖拽式 IDE,先确认没有找错项目。
| 项目 | 说明 |
|---|---|
| 是什么 | 解释执行 YAML 流程的 CLI,支持 Android、iOS、Web,跑在模拟器、真机与浏览器上 |
| 不是什么 | 不是可视化 IDE,不是并行执行云服务,也不是框架单元测试的替代品 |
| 适合谁 | 跨平台业务回归、新人上手、把 E2E 接入 CI 的团队 |
| 不适合谁 | 需要像素级手势控制、原生组件内部深度断言、或期望可视化编辑体验的场景 |
跑起来:最短路径
机器上需要先装 Java 17 及以上版本。克隆仓库后用根目录的包装脚本验证环境:
git clone https://gitcode.com/GitHub_Trending/ma/maestro cd maestro ./maestro --version首次运行会先经./maestro触发./gradlew :maestro-cli:installDist构建 CLI 再执行命令,慢一次,之后直接可用。验证通过后,你可以用maestro download-samples拉取官方示例流程与配套演示应用,或者复制e2e/workspaces/wikipedia/android-flow.yaml,把 appId 改成自己应用的包名。接着连上一个 Android 模拟器或 iOS 模拟器,跑一次maestro test,就能拿到第一份通过/失败结果。
核心工作流拆解
输入:一份 YAML 流程文件 + 一台已连接的设备。文件头部是元数据(appId、tags 等),下面是命令列表:
appId: com.example.myapp --- - launchApp - tapOn: "登录" - inputText: "demo@example.com"操作:执行maestro test flow.yaml。流程执行引擎 逐行解释:launchApp启动应用,tapOn按文本或资源 ID 定位并点击元素,inputText输入文本,assertVisible/assertNotVisible做断言。框架内置智能等待,动态加载的界面不用手写 sleep;对不稳定的步骤可以套retry或extendedWaitUntil。Wikipedia 示例流程 提供完整的 Android 与 iOS 版本,含子流程复用写法,是仓库里最完整的参照。
输出:终端逐步显示每一步的通过与否;失败时自动把当时的截图和 UI 元素树存到.maestro目录,也可生成 HTML 报告,方便定位"卡在哪一步、当时屏幕长什么样"。退出码可直接用于 CI 门禁判断。
适用边界与选型建议
- 需要可视化拖拽编辑器时,请安装 Maestro Studio 桌面客户端(免费但闭源,代码不在本仓库),不要指望本仓库提供。
- 纯 Web 应用且页面不多时,Playwright 更直接,调试生态也更成熟;Maestro 的优势在于同一套流程覆盖 Android、iOS、Web 三个端。
- 需要深度控制原生组件(自定义手势序列、组件内部状态断言),或团队已在 Appium、XCUITest 上有大量沉淀时,不必为"跨平台"这一条单独迁移——Maestro 强在业务级流程,不在组件级操作。
- 需要并行跑几百个用例时,官方付费的 Maestro Cloud 可承接,也可以用 CI 矩阵自建;CLI 本身在容器里运行没有问题。
- 框架依赖 Java 17+,CI 镜像里没有的话要先行补上。
如果你手头的回归脚本还是散落的 shell 或录屏操作,先跑通仓库里的示例流程,再迁一两条真实业务流程进去。安装与文档入口见 README.md,e2e/workspaces/ 下有 web、Android、iOS 三类可直接运行的样例。
【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考