Maestro:一条命令装好 CLI,让编码代理替你把 UI 测试脚本写到跑通

Maestro:一条命令装好 CLI,让编码代理替你把 UI 测试脚本写到跑通 Maestro一条命令装好 CLI让编码代理替你把 UI 测试脚本写到跑通【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro发版前发现登录页改版手写的端到端脚本一半步骤全部失效——你开始逐条核对选择器、重新录操作、再等十几分钟跑完一遍验证。Maestro 的做法是一行命令安装 CLI用扁平的 YAML 命令列表描述测试流程并且内置 MCP 服务让 Claude Code 这类编码代理直接在你的模拟器上检查界面、写脚本、跑测试直到通过为止。测试脚本断在 UI 改版上时你在维护的到底是什么维护成本通常不在写第一条脚本而在之后每次页面文案改动tapOn: Save这类靠可见文本定位的步骤就可能失效脚本越堆越多没人说得清哪些还能跑。Maestro 里每个测试就是一个 YAML 文件里的命令列表launchApp、tapOn、inputText、assertVisible这类指令按行排列没有嵌套框架、没有编译步骤——改哪一步编辑对应那一行即可。更省事的路径是把这件事交给代理maestro mcp命令随 CLI 一起发布装完就能用代理拿到的是真机环境模拟器或实体 Android 设备每一步操作都通过 Maestro Viewer 实时可见。它是怎么做到跨 Android、iOS 和 Web 的原理只有一句话所有交互都走平台的无障碍层而不是绑定某个 UI 框架。CLI 是一个独立二进制不装 driver、不引入 SDKReact Native、Flutter、Ionic 还是原生应用用的都是同一套命令。这一点来自它对 Appium、Espresso、UIAutomator、XCTest 等前辈工具教训的取舍早期就定下三条——走无障碍层驱动、单二进制安装、测试保持扁平 YAML 列表。另外它内置自动等待和容错动态加载的界面不用手写sleep。三步跑通第一个测试脚本安装要求 Java 17 及以上macOS / Linux / Windows WSLcurl -fsSL https://get.maestro.mobile.dev | bash写一个最小脚本仓库 README 里的联系人示例缩到最短是这样appId: com.android.contacts --- - launchApp - tapOn: Create new contact - tapOn: First Name - inputText: John - assertVisible: John执行maestro test flow.yaml跑在任意已连接的模拟器或设备窗口上。它能做什么以及不适合你继续往下看的两种情况覆盖范围同一份语法跑 Android、iOS、Web设备类型包括模拟器、模拟机、浏览器和实体 Android 设备实体 iOS 设备目前还不支持README 原话。和 Appium 那一类方案的差异不用配 driver 和平台 SDK、不用写测试代码再编译脚本即文档——YAML 本身就是可读的测试说明这一点比额外生成一份 API 文档更省事因为脚本和文档是同一份文件天然不会失同步。不适合你的情况如果你的目标是纯接口或性能测试Maestro 只做 UI 层如果团队只测 Web 且已重度使用 Playwright引入第二套工具链未必划算——README 里也说明它的价值主要在跨端统一和降低维护门槛上。仓库里可以直接翻的落地样例不用看虚构场景这个仓库自己就是用户e2e/workspaces/web/simple.yaml——对 saucedemo.com 的 Web 登录流程12 行完成输入、断言、点击全流程是照着抄的最小参考。e2e/workspaces/wikipedia/——Android/iOS 双端流程加子流程subflows的拆分方式展示模块化长什么样。e2e/demo_app/——配套的被测 Flutter 演示应用涵盖表单、WebView、权限等 20 多个测试页面。maestro-cli/src/main/java/maestro/cli/mcp/——MCP 服务的实现源码19 个文件想搞清楚代理能调哪些工具就翻这里。下一步去哪里看e2e/目录下的 README.md 写清了完整工作流起模拟器 →download_apps→install_apps→run_tests照着走一遍就能理解它自测自用的方式。现在就装好 CLI挑一个你正在维护的登录流程把第一段 YAML 写出来。【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考