ARTICLE DETAIL

资讯详情

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

Maestro 移动 UI 自动化测试:一条命令装好,5 分钟跑通第一条用例

Maestro 移动 UI 自动化测试:一条命令装好,5 分钟跑通第一条用例 Maestro 移动 UI 自动化测试一条命令装好5 分钟跑通第一条用例【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/MaestroMaestro 是一个开源的移动 UI 自动化测试框架用人类可读的 YAML 文件写测试用例在 Android、iOS 和 Web 的模拟器、仿真器与浏览器上跑端到端测试。它解决两个痛点——流程不用编译页面加载不用你写 sleep。无论你是偶尔需要验证 UI 流程的开发者还是想快速跑起一套自动化回归的测试新手5 分钟就能跑通第一条用例。先跑起来一条命令安装跑通第一条用例环境只有一个要求Java 17 或更高。先确认版本再执行安装脚本java -version # 需 17 curl -fsSL https://get.maestro.mobile.dev | bash装完就有maestro命令可用macOS、Linux、Windows WSL 均可。写一个最小流程文件用系统联系人应用做例子此例来自官方仓库 README# flow_contacts_android.yaml 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即可改完 YAML 立刻能跑不经过编译。如果手头没起好模拟器先执行maestro download-samples下载官方示例包含示例应用和流程跑一遍感受一下再上自己的项目。它能做什么断言、复用、Web 与脚本扩展断言是一等公民。每步操作后可以跟assertVisible/assertNotVisible校验页面状态。仓库里的 Web 示例登录后断言商品列表可见点进商品后断言列表消失截图也能参与断言框架自身的测试就用截图比对来验证页面渲染是否符合预期。一套语法覆盖 Web。同一份 YAML把appId换成url就能驱动浏览器。仓库 e2e/workspaces/ 下有成套示例登录、滚动、返回键、iframe 内输入每个场景一个几十行的 yaml 文件翻一遍比读文档快。子流程可复用。Wikipedia 示例把引导页步骤拆成子流程文件主流程用一行runFlow引用Android 与 iOS 各一份主流程本身只有 6 行。动态数据走脚本。runScript可以调用一段 JS 现场生成测试数据结果以${output.result}写回流程也可以先录制——手动操作一遍Maestro 把动作转成 YAML。Maestro Studio 则提供可视化流程构建器和元素检查器免费桌面应用代码不在本仓库。写法与技巧定位、等待与传参用用户看得见的文本定位元素tapOn: Save这样写最稳。元素匹配到多个时用idAndroid 视图 id 或 web 元素 id精确指定或用index挑第几个。仓库里的 Wikipedia 示例- tapOn: id: org.wikipedia:id/search_container - tapOn: text: Non existent view optional: true可能存在的元素标optional: true缺席时流程不失败文本也支持正则比如assertVisible: .*sleek.*。不用手写 sleep 等页面默认行为就是等每次点击和断言都会自动等到元素出现或界面稳定动态 UI 不需要手动 sleep。有动画的页面前后加waitForAnimationToEnd网络加载重的页面用关键元素的assertVisible当加载完成的信号。同一份流程喂不同数据流程内可引用环境变量。把账号放进 env用runFlow加 env 参数让同一个登录流程跑不同的账号组合——这就是数据驱动测试的最小形态不需要任何框架配套。往深里走模块怎么分工仓库是多模块结构职责清晰。maestro-cli/ 是入口跑测试、出报告、下载示例maestro-orchestra-models/ 定义每条 YAML 命令的数据模型MaestroCommandmaestro-orchestra/ 负责解析与执行maestro-android/ 与 maestro-ios 是跟设备对话的两个驱动maestro-web 走 Chrome DevTools 协议驱动浏览器。读源码建议按 cli → orchestra-models → orchestra 的顺序。仓库外有两个配套Studio 做可视化构建Cloud 做云端并行执行官方称最多可缩短 90% 执行时间。接进工作流YAML 进仓库CI 自动跑流程文件就是普通文本提交进仓库后天然纳入 CI失败时退出码非零可直接当门禁name: Maestro Tests on: [push] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkoutv3 - name: Install Maestro run: curl -fsSL https://get.maestro.mobile.dev | bash - run: maestro test ./flows/常见疑问三个新手最常问的问题支持哪些系统和应用Android、iOS 与 Web 三端Flutter、React Native 等跨平台与混合应用也覆盖模拟器、仿真器、真机、浏览器都能跑且三端语法完全一致。免费的边界在哪CLI 与全部开源代码遵循 Apache 2.0本文提到的功能都在免费范围内。Studio 免费但闭源Cloud 是付费服务只用于云端并行执行本地跑测试不受影响。和 Appium 有什么区别Appium 每个平台要配驱动流程通常还得用编程语言写Maestro 自带各平台驱动YAML 写完即跑同一套脚本三端通用。与 Espresso、XCTest、Selenium 的关系类似它们是各平台自带的测试框架Maestro 是站在其上统一入口的整合层取的是它们沉淀的等待与定位策略而不是替代。下一步很具体起一个模拟器跑maestro download-samples执行官方示例流程通过后把appId换成你应用的包名开始改写第一条自己的流程。【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表