ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

用 YAML 写移动UI自动化:从第一条流程到接入 CI 的完整路径

用 YAML 写移动UI自动化:从第一条流程到接入 CI 的完整路径 用 YAML 写移动UI自动化:从第一条流程到接入 CI 的完整路径【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/MaestroMaestro 是一款开源的移动 UI 自动化框架:你用 YAML 描述测试步骤,它负责驱动 Android、iOS 与 Web 上的应用(含 React Native、Flutter 等混合应用)执行操作。流程文件是解释执行的,不需要编译,一条命令跑完一个流程。对做移动测试入门、或者想让 Android 和 iOS 共用一套测试流程的人来说,这是一个低成本入口。手动点点点,是怎么把测试拖垮的回归测试手动做是这样的:每次版本更新,你都要走一遍登录、浏览、下单的链路,人做会漏。改成脚本则要先学会一套平台 API:用 Appium、Espresso、UIAutomator、XCTest 写,意味着两个平台各维护一套代码,等待、重试、元素定位全部自己实现。Maestro 的解法是把流程写成 YAML:launchApp、tapOn、assertVisible 直接对应 UI 动作,引擎负责轮询等待和容错。你改流程不碰代码,也不需要重新编译,迭代成本明显更低。十分钟跑通第一条 YAML 流程环境只需要 Java 17,装 CLI 是一条 curl 命令(macOS、Linux、Windows WSL 均可):java -version curl -fsSL https://get.maestro.mobile.dev | bash流程文件分两段:appId 声明目标应用,后面的列表就是操作步骤。以给联系人应用建一条记录为例:appId: com.android.contacts --- - launchApp - tapOn: Create new contact - tapOn: First Name - inputText: John - tapOn: Last Name - inputText: Snow - tapOn: Save运行:maestro test flow_contacts_android.yaml仓库里现成的例子在 e2e/workspaces/,挑一个直接跑,可以感受每个命令在设备上的实际行为。按真实场景写流程:登录、等待、定位与传参登录流:先断言,再操作骨架是:launchApp 后先 assertVisible: Sign In 确认页面就绪,再 tapOn 输入框、inputText 填账号密码、tapOn 提交,最后断言结果页。顺序很重要——断言在前,页面没加载完时下一步不会执行,点击不会落空。让等待不再靠猜assertVisible 是轮询:元素出现才通过,超时报错,而不是 sleep 几秒碰运气;assertNotVisible 反过来,适合等闪屏消失;waitForAnimationToEnd 处理转场动画。把等待都写成断言,偶发失败会明显变少。元素定位:四种写法用文本定位:tapOn: 登录用 id 定位:tapOn 里写 id: com.example:id/login_button用 index 消除重名歧义:tapOn: { text: 选项, index: 2 }组合条件定位:tapOn: { text: 提交, enabled: true }参数化:一份流程,多组账号用 - runFlow: login.yaml 调用子流程,env: 里传 USERNAME、PASSWORD。同一份 YAML 能吃多组账号,不用在 CI 里为每个用例复制文件。从本地到云端:Studio 调试,Cloud 并行本地调试阶段,maestro-studio 提供可视化 IDE:直接在屏幕上检查元素,顺手生成对应的 YAML 命令,不用对着文档猜选择器字段。接入 CI 也简单,GitHub Actions 里加一步安装、一步 maestro test,移动 UI 自动化就进了流水线。规模上来后用 Maestro Cloud:流程分发到多台设备并行执行,整体耗时大约能降 90%,每次运行环境确定、报告与录屏完整,调试不再靠截图对时间线。代码库速览:先看这几个目录maestro-cli/ — 命令行入口,负责测试执行、报告与设备连接maestro-orchestra/ — 流程解析与执行引擎,YAML 命令在这里逐步落地maestro-orchestra-models/ — 每条命令的数据模型,是命令的定义处maestro-android/ 与 maestro-ios/ — 两平台驱动,点击、输入、截图的底层实现行动清单跑通第一条流程:装好 CLI,从 e2e/workspaces/ 复制一个流程,在模拟器上拿到绿勾。把断言写在操作前:给你的登录流每个关键页面加 assertVisible。用 runFlow env 参数化:一份流程覆盖全部测试账号。接入 CI:流水线里加一条 maestro test,让回归每晚替你跑。流程超过十条后,用 Studio 调试,再评估 Cloud 并行。【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表