Maestro 自动化测试快速指南:5 分钟跑通第一个跨平台 E2E 用例
【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro
Maestro 自动化测试的核心思路,是把端到端用例写成扁平的 YAML 命令列表,一套语法覆盖 Android、iOS 和 Web。开源框架,不引入驱动,不配 SDK,写完直接跑。如果你现在还在用一堆驱动配置去维护 Espresso、Appium 脚本,这个仓库值得花 5 分钟试一次。
一条命令装好 CLI,一个文件写出第一个用例
前提是系统装了 Java 17 以上,然后跑官方一行安装脚本,没有编译步骤:
curl -fsSL "https://get.maestro.mobile.dev" | bash装完,第一个测试用例就是一个 YAML 文件。语法很直白:声明应用包名,再按顺序列出动作。一个"点击加断言"的登录流程只有三行:
appId: com.example.app - tapOn: "Login" - assertVisible: "Welcome"用 maestro test 指定文件执行。失败时 CLI 会打印当时的界面状态和出错步骤,改完直接重跑,不用重新构建任何东西。
一套用例跑三个端,不手写 sleep
同一份命令列表可以在 Android 模拟器、iOS 模拟器、浏览器和 Android 真机上执行(iOS 真机暂不支持)。它对框架无感:React Native、Flutter、原生、混合应用用的都是同一套语法,README 里写明 Meta 用它测 React Native 本身。
一个容易忽略的细节:Maestro 通过平台无障碍层驱动应用,内置智能等待和失败容忍,动态界面下不用到处撒手动 sleep()。不想碰终端的话,还有免费的 Maestro Studio 桌面版,可视化地搭流程、看元素。
让 AI 编码代理自己操作真机
终端里敲 maestro mcp,MCP 服务就起来了——它直接内建在 CLI 里,不需要额外安装。Claude Code、Cursor 或任意 MCP 客户端都能通过这个协议操作真机:看屏幕、点击、滚动、跑断言。同时会打开本地 Viewer 窗口,把每条 MCP 命令实时展示出来。
代理还能写用例:让它写端到端流程,它输出的是纯 YAML,反复运行直到通过,文件留在仓库里就是 CI 里的确定性回归。
仓库里的真实流程与自测脚本
想看实际用法,直接翻 e2e/workspaces/ 目录。wikipedia/ 下有 Android 和 iOS 的现成流程,子流程 runFlow 串联、用 runScript 跑 JS 脚本取搜索词这类进阶写法都在里面;web/ 目录是 Web 端用例,配的是静态页面 fixture,e2e/ 下的 ensure_fixtures 脚本一键起本地服务就能跑。
顶层的 installLocally.sh 和 e2e/run_tests 这些脚本,就是测试 Maestro 自身用的链路。对内部实现感兴趣的开发者,核心解析逻辑在 maestro-orchestra/,设备层连接在 maestro-client/。
想先上手,就从 e2e/workspaces/wikipedia/ 目录里的示例流程读起。
【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考