尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Maestro 移动 UI 自动化测试快速指南:5 分钟跑通你的第一个 YAML 用例

Maestro 移动 UI 自动化测试快速指南:5 分钟跑通你的第一个 YAML 用例 Maestro 移动 UI 自动化测试快速指南5 分钟跑通你的第一个 YAML 用例【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro如果你还在靠人工点按来回 Android、iOS 甚至 Web 应用做回归Maestro 值得你停下来看十分钟。它把 UI 测试写成几行 YAML由解释器逐步执行同一套流程能覆盖三个平台。本文按先踩坑、再上手、后拆解的顺序讲清楚它到底怎么干活。手写点按测试有多烦 先说痛点。你大概率干过这种事改完一个按钮得手动把登录、下单、退出再点一遍换个分辨率更小的机型又得重点等界面还没加载完就点了下一项脚本直接飘红。更麻烦的是Android 用一套、iOS 再写一套、Web 还得换 Selenium三套脚本三套维护。Maestro 想砍掉的正是这些重复劳动。它的思路很直接把点开、输入、断言这些动作写进一个文本文件工具负责在设备上真实操作并等待。你不需要为每个平台单独搭环境也不用等编译——改完 YAML 直接重跑就行。环境安装三步走跑通第一个流程 ⚡先确认你有 Java 17 或更高版本因为 Maestro 的 CLI 是 Kotlin/JVM 写的java -version装工具只需一条脚本命令支持 macOS、Linux 和 Windows WSLcurl -fsSL https://get.maestro.mobile.dev | bash新建一个文件contacts.yaml内容就七行appId: com.android.contacts --- - launchApp - tapOn: First Name - inputText: John - assertVisible: John跑起来maestro test contacts.yamlappId告诉它拉起哪个包名---分隔元信息和步骤后面的- launchApp、- tapOn是一步步的动作。跑通之后你手里就有了一个能反复执行的回归用例。核心能力逐个拆用 YAML 写 UI 测试定位元素是 UI 测试的地基。你可以按文本找写成- tapOn: 登录文本对不上时按索引更稳写成- tapOn: { text: 选项, index: 2 }。它还能用控件 id 做组合条件字段名保持直白不用记一堆 API。等待机制是它不太容易飘红的原因。别自己sleep用断言去逼它等- assertVisible: 加载中会一直等到目标出现- assertNotVisible: 加载中则反之等它消失动画场景还能配- waitForAnimationToEnd。截图断言适合验证视觉回归assertScreenshot会把当前屏幕和基准图比对超阈值的差异判为失败。下面这张就是它故意跑挂时的样子——绿色色块和那句红字等于把这里本该失败摆给你看一个真实场景演练装 App、登录、过弹窗 真实流程很少是直线它会分支、循环、吃变量。看仓库里现成的例子——在应用商店里装一个应用appId: com.android.vending --- - launchApp - tapOn: Search for apps games - inputText: Twitter - tapOn: text: twitter index: 1 - tapOn: Installindex: 1专门用来处理搜索结果里同名的多条控件inputText之后不急着点交给定位器自己去匹配。再往后还有条件分支、repeat/until这类循环、以及用env传变量——同一份流程换个账号就能复用。更完整的真实用例可以直接翻 e2e/workspaces/里面是 Wikipedia、Web 视图等一整套能跑起来的样例工程。从单兵到团队Studio、Cloud 与 CI 集成一个人写流程团队要的是并行和可复现。Studio桌面端可视化 IDE拖出来的就是 YAML还带元素检查器和 AI 辅助适合不熟语法的同事先上手。Cloud把几百条流程丢到专用基础设施上并行跑官方口径是能砍掉约 90% 的总等待时间环境固定、结果可复现。CI把maestro test塞进流水线每次提交自动跑。在 GitHub Actions 里大概长这样- run: curl -fsSL https://get.maestro.mobile.dev | bash - run: maestro test ./tests/两段分别是装工具和跑用例./tests/换成你放 YAML 的目录即可剩下的交给流水线触发。学习路线跳进源码和文档想看它内部怎么把一行- tapOn变成设备上的真实操作顺着这条线读命令模型定义在 maestro-orchestra-models/每个动作对应一个数据类解析和执行引擎在maestro-orchestra/平台驱动则拆成maestro-android/、maestro-ios/和 Web 侧的 WebDriver。项目整体说明见 README.md。给你三条能立刻做的起步建议今天就用上面contacts.yaml那种七行模板把你最常回归的一条链路写成流程并跑通。下周给其中两个重复步骤加上assertVisible/assertNotVisible把手动等待的地方替换掉。再把它接进 CI让每次提交自动触发把人工点按从日常工作里彻底清出去。【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表