Maestro:用 YAML 在 5 分钟跑通移动 E2E 自动化测试
Maestro用 YAML 在 5 分钟跑通移动 E2E 自动化测试【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro回归测试跑一轮要等半天最后发现挂掉的不是功能而是一个按钮没找着——这是移动 E2E 自动化测试里常见的情况。Maestro 走的是另一条路用人类可读的 YAML 写自动化流程同一份流程在 Android、iOS 和 Web 上都能跑不用编译改完直接再跑一遍。它替你省掉了什么两种做法的对照传统做法Maestro 做法平台各自的测试代码Espresso、XCTest、Selenium 各写一套一份 YAML 流程三端通用改一处测试要编译、打包、安装流程是解释执行的存盘就能重跑元素定位靠挖资源 ID 或 XPath用屏幕上可见的文字直接找元素手写sleep()等动画时长全靠猜内置智能等待自动等元素出现用例写在代码里QA 不好上手YAML 是纯文本能读文档就能写README 里明确说了Maestro 的设计参考了 Appium、Espresso、UIAutomator、Playwright 这些前辈的教训运行前提只有一个——系统装了 Java 17 或更高版本。装好 CLI跑通第一条流程macOS、Linux、Windows WSL 的安装都是同一条命令curl -fsSL https://get.maestro.mobile.dev | bash装完后写一个新建联系人的测试文件这个例子直接来自仓库 READMEappId: com.android.contacts --- - launchApp - tapOn: Create new contact - tapOn: First Name - inputText: John - tapOn: Save用maestro test flow_contacts_android.yaml运行流程就跑完了。模拟器连接、应用构建安装这些前置准备去官方文档看即可这里只保留最短路径。看懂 4 个概念就能写出流程用自然文本找元素。tapOn: Save直接匹配屏幕上的文字不需要写选择器匹配到多个时加index: 1指定第几个。断言也是命令。assertVisible: Products、assertNotVisible和交互命令一样按顺序执行断言不通过测试就判失败不用额外包一层断言框架。智能等待是内建的。每条命令执行前Maestro 会等目标元素出现并稳定加载动画、延迟弹出的弹窗这类动态 UI 不用你决定在哪插sleep()。可选步骤和变量。步骤上加optional: true找不到就跳过适合可能出现的广告位runScript执行一段 JS结果用${output.result}传给后面的步骤。仓库里的真实用法滚动验证首屏之外的内容e2e/workspaces/web/ 下有一组针对公开演示站点的可运行流程下面这个场景很典型登录后断言商品列表滚动一次再断言滚动后加入购物车才出现- launchApp - tapOn: Username - inputText: standard_user # ... 输入密码并登录 - assertVisible: Products - scroll - assertVisible: .*Add to cart.*同目录下的 e2e/workspaces/wikipedia/ 则演示了真实 App 的 Android/iOS 流程用runFlow复用子流程、用id定位、配合runScript注入搜索词可以看到生产级写法长什么样。项目是怎么组织的模块职责表仓库是一个多模块 Gradle 工程主要模块如下模块职责maestro-cli命令行入口跑测试、出 HTML 报告、内置 MCP servermaestro-orchestra流程解析与执行引擎maestro-orchestra-modelsYAML 各命令的数据模型定义maestro-client设备通信层元素查询、手势、截图、JS 引擎maestro-android、maestro-iosAndroid 与 iOS 平台驱动maestro-aiAI 辅助模块对接 Anthropic / OpenAI想弄清一条tapOn背后发生了什么顺着 maestro-cli → maestro-orchestra → maestro-client 的调用链看就够。周边工具链Studio 和 CloudMaestro Studio是免费的桌面 IDE不开源直接下载可以录制操作、可视化地构建流程和检查元素解决不想在终端和文件之间反复切换的问题。Maestro Cloud是付费服务面向套件变大之后的场景在专用基础设施上并行跑数百个测试官方称执行时间最多可缩短 90%带通知、确定性执行环境和完整调试工具提供 7 天试用。接进 CI两条命令的事任何能装 Java 17 的 CI 系统都能跑 Maestro- name: Install Maestro run: curl -fsSL https://get.maestro.mobile.dev | bash - name: Run tests run: maestro test ./flows/适合谁、什么时候值得引入如果你的团队要同时维护 Android 和 iOS可能还有 Web又想降低 E2E 用例的编写门槛这套 YAML 方案值得放进工具箱——流程可读、可评审、平台无关维护成本随平台数量增长得很慢。反过来如果你只测单端、且要求深度耦合应用内部状态Espresso、XCTest 这类原生框架仍有空间不必强行换栈。【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →