在真机上操作一遍,用 Maestro 录制功能生成可复跑的 YAML 测试脚本

发布时间:2026/9/11 16:03:58
在真机上操作一遍,用 Maestro 录制功能生成可复跑的 YAML 测试脚本 在真机上操作一遍用 Maestro 录制功能生成可复跑的 YAML 测试脚本【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro用maestro record把你在 Android 或 iOS 设备上的点击、输入转成 YAML 测试脚本操作完一遍流程就得到一份能直接交给 CI 复跑的移动应用测试脚本不用手写定位器。它到底在做什么录制功能的链路是输入、处理、输出三步。输入是你在设备上的操作启动应用、点按钮、输文本。操作的同时Maestro 监听设备产生的交互事件并抓取每一步的视图层级。处理阶段Maestro 给每个事件挑一个定位方式元素有 test-id 或 resource-id 就记 id只有文案就记 text。输出是一份 YAML 流程文件每个操作变成一条命令launchApp、tapOn、inputText结尾补一条 assertVisible保证下次复跑时结果可校验。简单说你交出去的是「怎么操作」拿回来的是「怎么验证」。事件是怎么拼成命令的可以从录制命令源码读起。跑起来之前的准备先安装 CLI装完可用maestro --version确认版本curl -fsSL https://get.maestro.mobile.dev | bashAndroid 用adb devices确认模拟器或开了 USB 调试的真机在列表里iOS 把模拟器启动即可。设备连上后maestro record就能直接用全程不需要写代码也不需要其他依赖。跟一个具体场景走完录制场景给通讯录应用「新建联系人」写一条回归用例。先跑maestro record录屏画面会和设备同步。接着在模拟器里做一遍真实操作启动通讯录点「New Contact」在名字框输入 Alice点「Save」最后在列表里看到新增条目。结束后退出录制YAML 文件直接落在工作目录建议立刻复跑maestro record # 结束录制后生成 contact_add.yaml先跑一遍验证 maestro test contact_add.yaml操作时别犹豫卡住后的「补操作」也会被记进去生成后先跑一遍通过再入库失败趁热修。录出来的脚本长什么样上面场景生成的文件大致如下- launchApp: package: com.example.contacts - tapOn: text: New Contact - tapOn: text: First name - inputText: Alice - tapOn: text: Save - assertVisible: text: AlicelaunchApp按包名拉起应用省掉找图标的步骤两条tapOn按文案定位其中一条可换成更稳的resource-idinputText打进当前聚焦的输入框结尾assertVisible判断「成没成」去掉它脚本就只剩「没崩」的保证。Maestro 录制功能回放操作时使用的默认背景图让脚本更稳的三个细节定位器漂移— 现象昨天跑通的脚本今天找不到元素。原因按文案定位时产品改了文案Save 变 Done。解法关键操作用 test-id 或 resource-id不随文案变拿不到 id 就选文案最稳的元素如标题做锚点。动态内容加载— 现象点「加载更多」后条目还没出来点击就失败。原因元素要等数据请求完成才渲染录制只记点了什么。解法点击前插waitFor等元素出现或先assertVisible确认加载完成。多设备差异— 现象脚本在模拟器通过换小屏真机后按钮被底栏挡住。原因元素不在可见区域。解法用scrollUntilVisible先把元素滚进可见区再点录制与复跑用尺寸、系统版本相近的设备。什么时候适合用什么时候别用适合流程稳定的回归用例登录、引导、核心下单和步骤多、手写枯燥的场景。Maestro 录制功能先把脚本跑通再逐个细化定位器也适合把测试或产品口述的操作路径快速转成 YAML。不适合UI 文案频繁变动的界面按文案录的定位器会反复失效需要校验业务数据的场景如价格计算对不对录制只记表层交互不验数据web 流程暂不支持 record这部分先手写 YAML。三个容易搞错的地方误区录完就能直接用。实际录出来的是初稿按文案的定位对改动敏感要跑一遍、修好定位器再提交。误区操作越连贯效果越好。实际录制只认界面最终状态犹豫、回退不需要体现在脚本里一遍顺畅胜过反复尝试。误区录制功能可以代替测试设计。实际它解决的是「操作写下来」的效率不告诉你该覆盖哪些用例、断言加在哪这些仍要先想清楚。小结Maestro 录制功能把「把操作写下来」压缩成几分钟的设备操作产出是可版本管理、可进 CI 的 YAML 测试脚本。下一步打开终端跑maestro record挑你最熟的应用把最常走的一条流程录一遍再用maestro test复跑一次。【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考