ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Maestro 完整教程:从零安装到跑通移动端 UI 自动化测试流

Maestro 完整教程:从零安装到跑通移动端 UI 自动化测试流 Maestro 完整教程从零安装到跑通移动端 UI 自动化测试流【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro想象一下每次发版前你都要手动打开 App、输入账号、点登录、逐页确认界面是否正常——同一个流程一天要点好几遍。Maestro 就是用来接管这类重复劳动的它是一个移动端 UI 自动化测试框架你把操作步骤写成一份人类可读的 YAML 文件它就在设备或模拟器上自动执行整个流程并输出通过与否的测试报告。Maestro 是什么一分钟建立认知一句话定位用 YAML 写测试步骤、由解释引擎直接执行的 Android / iOS / Web UI 自动化测试工具。跨平台同一套语法测 Android、iOS 和 Web 应用含 Flutter、React Native、混合 App。YAML 声明式launchApp、tapOn、assertVisible这类命令直接表达做什么而非怎么实现。内置智能等待元素没出现时会自行等待重试不用手动写sleep()。免编译解释执行改完 YAML 立刻重跑没有编译环节迭代很快。 Maestro 安装步骤从环境检查到第一条测试流整条主线按顺序走完即可不需要额外配置。确认 Java 17Maestro 的运行依赖 Java先执行下面命令确认版本java -version一键安装在 macOS / Linux / Windows (WSL) 上执行安装脚本它会自动下载最新版本并装到$HOME/.maestrocurl -fsSL https://get.maestro.mobile.dev | bash让 PATH 生效新开一个终端或手动执行export PATH$PATH:$HOME/.maestro/bin验证安装maestro --version能打印出版本号就说明装好了。建一个最小 flow新建first_test.yaml内容只有启动一个应用appId: org.wikipedia --- - launchApp运行它前提是模拟器/真机上已安装对应应用maestro test first_test.yaml终端会逐步打印执行过程最后给出通过/失败结论。到这里你的第一条 Maestro 测试流就跑通了。Maestro 核心命令速查命令作用最短示例launchApp启动目标应用可附加clearState: true清空应用状态- launchApptapOn点击元素按文本或控件 id 定位- tapOn: LogininputText向当前焦点输入框写入文本- inputText: helloassertVisible断言某元素可见不满足则判失败- assertVisible: SuccessscrollUntilVisible滚动直到某元素出现在屏幕上- scrollUntilVisible: MorerunFlow执行另一个 flow 文件用于复用子流程- runFlow: sub.yaml命令都支持按text、id等条件定位元素更多写法见仓库自带示例 e2e/workspaces/wikipedia/android-advanced-flow.yaml。写好一个 Maestro YAML 测试流三部分结构一个 flow 文件固定由三部分组成用---分隔元信息与步骤appId声明要测的应用Android 是包名iOS 是 bundle id。tags任意标签方便后续筛选和分类。步骤列表从上到下按顺序执行的一串命令。一个完整的表单填写示例appId: com.example.app tags: - android - form --- - launchApp: clearState: true - tapOn: Form Test - tapOn: Email - inputText: correctmobile.dev - tapOn: Password - inputText: maestro - tapOn: text: Login index: 1 - assertVisible: text: Credentials are correct optional: true两个值得注意的点当页面上有多个同名元素比如两个都叫 Login 的按钮时用textindex组合指定第几个给assertVisible加上optional: true后该断言失败不会中断整个流程适合处理已知不稳定的检查点。实战给维基百科 App 写冒烟测试冒烟测试的目标很简单应用能正常启动、核心入口可进入。1. 场景每次构建后验证维基百科 Apporg.wikipedia在 Android 上能启动并进入搜索页。2. 建文件创建wikipedia_smoke.yamlappId: org.wikipedia tags: - android - smoke --- - launchApp - tapOn: id: org.wikipedia:id/search_container仓库的 e2e 用例里就有几乎一样的真实版本可对照参考e2e/workspaces/wikipedia/android-flow.yaml。3. 运行maestro test wikipedia_smoke.yaml4. 看报告执行结束后 Maestro 会生成测试报告包含每一步的通过状态、失败步骤的截图与堆栈信息还附带整段操作过程的录屏。 Maestro 测试不稳定排查现象到解法flaky偶发不稳定测试指同一条 flow 时而通过、时而失败。按下面的现象 → 原因 → 解法逐条对照现象某条assertVisible时过时不过。原因页面动画未结束、网络数据晚到元素出现时间漂移。解法先信任内置等待机制确认超时时间足够若该检查点本来就允许缺席加optional: true降级为失败不阻断。现象Element not found但手动点点又没问题。原因上一步操作还没等界面就绪就执行了下一步。解法调整步骤顺序把等待/断言关键元素提前到依赖它的操作之前让内置等待有机会介入。现象失败了但不确定挂在哪一步。原因只看终端输出没翻报告。解法打开maestro test生成的测试报告它按步骤列出每条命令的耗时与状态失败步骤直接带截图定位到具体一行命令。现象元素明明在tapOn却定位不到。原因文本或 id 猜错了元素层级不直观。解法用 Maestro Studio官方配套 IDE连接设备可视化检查器里直接点选元素生成命令也可以用它录制交互自动生成 flow内置的 AI 助手还能帮你补全命令、解释失败原因。写在最后到这里你已经走完了安装、写 flow、跑真实用例和排查不稳定问题这四件事日常接入自己的项目只是把appId和元素选择器换掉而已。想看更多真实用例可以翻翻仓库自带的 e2e/workspaces/ 目录遇到更具体的问题官方仓库的 CONTRIBUTING.md 和社区渠道是最直接的求助入口。【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表