ARTICLE DETAIL

资讯详情

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

Maestro 移动端 E2E 自动化测试框架完整教程:YAML 从安装到首跑指南

Maestro 移动端 E2E 自动化测试框架完整教程:YAML 从安装到首跑指南 Maestro 移动端 E2E 自动化测试框架完整教程YAML 从安装到首跑指南【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/MaestroMaestro 是一款开源的移动 UI 自动化测试框架同时支持 Android、iOS 和 Web 应用用人类可读的 YAML 文件编写端到端E2E测试用例。它面向测试新手和一线开发者目标是你五分钟就能写出第一条可运行的用例。三分钟装好 Maestro CLI先确认 Java 再一行安装Maestro 的运行依赖一个命令行工具CLICommand Line Interface装好后才能执行用例。它要求系统里有 Java 17 或更高版本。先用这条命令确认你的 Java 版本java -version确认无误后在 macOS、Linux 或 Windows 的 WSL 上执行下面的安装脚本它会把maestro命令装进你的系统。装完后用maestro -v看一眼版本号能输出版本号就说明就绪curl -fsSL https://get.maestro.mobile.dev | bash maestro -v写出第一条能跑的用例登录一个电商网页Maestro 的用例就是一个 YAML 文件里面是一串按顺序执行的指令。下面这份用例来自仓库自带示例 示例目录它打开一个演示电商站点、输入账号密码、点击登录再验证商品是否出现# 最小示例登录网页并断言结果 url: https://www.saucedemo.com/ --- - launchApp - tapOn: Username - inputText: standard_user - tapOn: Password - inputText: secret_sauce - tapOn: Login - assertVisible: Products保存为flow.yaml后用下面这条命令运行它。launchApp打开目标、tapOn点元素、inputText输入文字、assertVisible验证某个文本是否显示这几条指令覆盖了绝大多数场景maestro test flow.yaml运行成功会看到用例通过失败时 CLI 会告诉你卡在哪一步、缺哪个元素方便你照着修。定位元素为什么只写一段文本就能用传统工具点一个按钮常常要拼复杂的定位器XPath、资源 ID 或层级路径改一次界面就可能全断。Maestro 默认让你直接用「屏幕上能看到的文本」定位元素比如tapOn: Login就够。这是因为 Maestro 在后台会读取整棵视图树View Hierarchy即当前界面所有元素的结构再按文本、ID、索引或组合条件去匹配。你既可以写- tapOn: Login也可以写更严格的对象形式按 ID 定位、按第几个出现、按是否可用。这样写出来更像自然语言维护成本也低——界面文案变了改一处文本即可不必重算定位器。命令模型的完整定义在 命令模型模块想深挖匹配逻辑可以看那里。别让 sleep 拖垮用例内置自动等待机制新手写自动化最容易踩的坑是用sleep()硬等几秒来应付加载。等太短会偶发失败等太长又拖慢整套测试。Maestro 把等待做进了引擎里每条tapOn、assertVisible都会自动等待目标元素出现而不是靠你手动停顿。对应关系很直接——想让某元素出现用assertVisible它会等到出现才继续想让某元素消失用assertNotVisible比如等加载提示框关掉想忽略「偶发弹窗」给指令加optional: true找不到也不报错仓库里 wikipedia 进阶流程 就用optional: true处理了不确定的视图用条件块处理只在部分设备出现的弹窗是学习这种容错写法的好样例。一套用例跑多端条件块与跨平台写法Maestro 用同一套 YAML 语法覆盖 Android、iOS 和 Web所以同一份用例理论上三端通用。当某些步骤只在某个平台需要时不用拆文件用runFlow的when条件块按需执行即可。下面这段取自 iOS 进阶流程只有当「年度回顾」弹窗出现时才点掉它否则直接跳过- runFlow: when: visible: text: Explore your Wikipedia Year in Review commands: - tapOn: Done label: 如出现则关闭年度回顾弹窗配合${maestro.platform android ? ... : ...}这类平台判断表达式一条用例就能在两个平台上跑不同取值不必为每个平台维护一套重复文件。仓库里怎么进一步练手想跑真实场景仓库 e2e/workspaces/ 下有现成的可运行用例wikipedia/是 Wikipedia 应用流程web/是浏览器场景含输入框、跨域 iframe 等。配合 demo 应用 的多个演示界面你可以照着写自己的第一条用例。上手顺序建议如下按上面命令装好 CLI跑通maestro test flow.yaml确认能过打开 e2e/workspaces/wikipedia/读一份真实流程看条件块与optional用法拿你自己的 App 复制 最小示例 结构替换url或appId写三条指令遇到平台差异时参考 demo 应用说明 里的跨平台与权限处理建议【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表