新闻详情

新闻详情

首页 / 资讯中心 / 详情

Maestro 移动 UI 自动化测试入门指南:从 YAML 流程到 AI 断言

发布时间:2026/9/11 10:34:55来源:尧图网络
Maestro 移动 UI 自动化测试入门指南:从 YAML 流程到 AI 断言
Maestro 移动 UI 自动化测试入门指南从 YAML 流程到 AI 断言【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/MaestroMaestro 是一个开源的移动与 Web 端 UI 自动化测试框架。你用 YAML 写测试步骤它负责在 Android 模拟器、iOS 模拟器或浏览器里执行并帮你处理动态界面的等待问题。对于不熟测试框架的开发者它把写定位代码这件事替换成了写人话命令这是本文要带你跑通的全部链路。 项目速览一条 YAML 就能驱动真机Maestro 的核心是人类可读的 YAML 流程 解释执行引擎。一条测试就是一个 flow 文件步骤是launchApp、tapOn、inputText、assertVisible这样的命令。流程文件即时解释、无需编译改完即跑仓库自身就用同一套 YAML 对自己的 Android、iOS、Web 驱动做端到端自测。 核心能力拆解用 flow 文件描述测试步骤一个 flow 文件由appId加一串命令组成。下面的例子来自仓库 README启动 Android 联系人应用新建联系人 John Snow 并保存。appId: com.android.contacts --- - launchApp # 启动应用 - tapOn: Create new contact - tapOn: First Name - inputText: John - tapOn: SaveappId指定被测应用命令之间按顺序执行。仓库的 e2e/demo_app/.maestro/ 目录里放了几十条现成 flow覆盖输入、手势、权限、截图对比等场景是理解每条命令最快的样本库。用自然语言做 AI 断言有些界面用text选择器不好写Maestro 提供两条 AI 命令assertWithAI接受一句自然语言断言由大模型判断当前截图是否满足assertNoDefectsWithAI则检查布局错乱、元素重叠这类视觉缺陷。命令定义在 maestro-orchestra-models 的 Commands.kt模型对接与调用逻辑在 maestro-ai 模块。- launchApp: clearState: true # 启动前清空应用状态 - assertWithAI: optional: true # 断言失败不终止流程 assertion: 登录界面可见包含用户名和密码输入框适用场景文案频繁变更的界面、视觉回归检查以及你还不确定该用哪个选择器时的兜底验证。同一套写法覆盖 Android、iOS 与 Web平台差异被收敛在仓库内部的驱动层——maestro-android/、maestro-ios-xctest-runner/和maestro-web/分别对接各自平台maestro-client/提供统一入口。对你的意义是同一个 flow 可以在三个平台各跑一遍。仓库 e2e/workspaces/wikipedia/ 下的android-flow.yaml与ios-flow.yaml就是同一业务流程的双平台对照写法。 实战从零跑通第一条测试目标 1装上 CLI。Maestro 要求 Java 17 及以上。git clone https://gitcode.com/GitHub_Trending/ma/maestro cd maestro ./gradlew :maestro-cli:installDist # 构建出 CLI 可执行文件目标 2写一个最小 flow。新建flow.yaml把appId换成你装在模拟器里的应用包名内容可以照抄上文联系人示例。目标 3执行。maestro test flow.yaml # 指定模拟器或设备后运行运行结束后终端会逐步打印每条命令的执行结果失败时附带当时截图路径你不需要额外配置报告工具。想不开终端写测试也可以装官方免费的 Maestro Studio它提供可视化 flow 编辑器和元素检查。⚙️ 进阶两个决定测试稳定性的机制显式等待。移动端 UI 加载速度不定Maestro 内置自动等待与重试不需要手写sleep()。当默认行为不够时用extendedWaitUntil显式声明等待条件- extendedWaitUntil: timeout: 10000 # 最长等 10 秒 visible: text: Gesture Tester对使用者的意义CI 上偶发失败时先检查失败命令处的waitToSettleTimeoutMs和超时设置而不是盲目加长 sleep。命令的重试与生命周期由 maestro-orchestra 模块 统一调度。MCP 服务器与 LLM 评估。Maestro CLI 内置一个 MCP 服务器把list_devices、take_screenshot、inspect_screen、run等 8 个工具暴露给大模型让 AI Agent 可以对话式地驱动测试。项目自己用另一个 LLM 当裁判LLM-Judge来判定工具调用是否正确评估配置见 maestro-cli 的 MCP 评估文件。这说明它的 AI 能力路径是被持续量化验证的而不是演示性质。 实用贴士环境门槛只有一个Java 17 及以上装完用java -version确认。给 flow 加tags字段可以像仓库那样把预期通过passing与预期失败failing的用例拆成两套分别执行。手写选择器不确定时先用assertWithAI兜底跑通再逐步替换为assertVisible等确定性命令降低 AI 调用成本。AI 命令通过环境变量MAESTRO_CLI_AI_KEY配置密钥OpenAI 与 Anthropic 的 key 都支持。用例变多后云端并行执行可以把总耗时压缩最多 90%Maestro Cloud 宣传口径本地跑不动的回归可以分批上云。从你正在维护的某个应用里挑一条最常用的操作路径——比如启动、登录、进入首页——先写成 5 行以内的 flow 文件跑通它。跑通之后下一条要写的流程就已经有模板可抄了。【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Web技术演进与工程实践:从静态页面到AI驱动的智能化应用 2026/9/11 11:23:05

Web技术演进与工程实践:从静态页面到AI驱动的智能化应用

从1991年第一个网页诞生到今天,Web已经走过了三十多年。我入行时还在用table布局切图,现在已经带着团队做AI驱动的Web应用,回头看这条演进路线,其实有一条非常清晰的主线: 每一次Web技术的跃迁,本质上都是…

阅读更多 →
OpenProject 部署指南:从 Docker 命令到甘特图排期 2026/9/11 11:23:05

OpenProject 部署指南:从 Docker 命令到甘特图排期

OpenProject 部署指南:从 Docker 命令到甘特图排期 【免费下载链接】openproject OpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue …

阅读更多 →
umi 模板实战指南:一个下午搭好可发布的 umi 自定义模板 2026/9/11 11:23:05

umi 模板实战指南:一个下午搭好可发布的 umi 自定义模板

umi 模板实战指南:一个下午搭好可发布的 umi 自定义模板 【免费下载链接】umi A framework in react community ✨ 项目地址: https://gitcode.com/GitHub_Trending/um/umi 🧭 面向 umi 用户与团队负责人的项目脚手架定制实战:用 umi …

阅读更多 →
MATLAB编程常见报错解析与性能优化实战技巧 2026/9/11 11:23:05

MATLAB编程常见报错解析与性能优化实战技巧

1. MATLAB编程的核心痛点与解决思路 作为一名使用MATLAB超过8年的工程师,我深知这个强大的数值计算平台在实际使用中的两大痛点:报错信息晦涩难懂和代码性能优化困难。这两个问题往往让初学者望而却步,甚至让有经验的开发者也时常陷入困境。 …

阅读更多 →
Jackett 性能优化:让种子索引聚合服务恢复秒级响应的排障式调优 2026/9/11 11:23:05

Jackett 性能优化:让种子索引聚合服务恢复秒级响应的排障式调优

Jackett 性能优化:让种子索引聚合服务恢复秒级响应的排障式调优 【免费下载链接】Jackett API Support for your favorite torrent trackers 项目地址: https://gitcode.com/GitHub_Trending/ja/Jackett Jackett 是跑在本地的种子索引聚合工具,给…

阅读更多 →
《Python数据分析》第三版实战指南:环境配置与核心技巧 2026/9/11 11:20:04

《Python数据分析》第三版实战指南:环境配置与核心技巧

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞