资讯动态

Maestro AI 测试实战:自然语言 UI 测试的完整指南

发布时间:2026/9/11 4:33:01 来源:尧图企业网站定制
Maestro AI 测试实战自然语言 UI 测试的完整指南【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro产品改了一个按钮的文案你翻出一堆 YAML发现里面有六行还在断言旧文本——这种时刻正是 Maestro AI 测试想消灭的场景。它要做的不是帮你补一行断言而是把整个流程换掉你用一句人话描述测试意图模型负责把脚本写出来、把设备跑起来、把结果判下去。下面按你装完之后最可能问的三个问题来走一遍每个能力点都附一步试一试再打开黑盒看看它内部在干什么最后说说稳和省这两笔账。会说人话之后脚本交给模型写这一步是新人最容易卡住的地方到底该怎么说入口是 Maestro CLI 内置的 MCP 服务器。MCPModel Context Protocol模型上下文协议你可以理解成大模型手里的鼠标键盘执行maestro mcp它会把 8 个工具端点暴露给模型包括 list_devices列设备、take_screenshot截图、run跑 flow、inspect_screen查界面、cheat_sheet查语法速查表、list_cloud_devices / run_on_cloud / get_cloud_run_status云设备三件套。模型拿到这些工具后就能自己把人话翻译成可执行的 YAML并在执行前做语法校验。实现细节在 MCP 服务器模块。试一试把任意 MCP 客户端指向maestro mcp对它说一句看看演示应用登录页长什么样。你会看到它先调 inspect_screen 拿到当前界面再决定下一步动作全程不用你碰 YAML。界面坏了谁来发现这就是 Maestro 视觉回归测试最容易上手的部分不写断言直接让模型看。官方示例的流程长这样——- launchApp: clearState: true - tapOn: Defects Test - assertNoDefectsWithAI: optional: true - assertWithAI: A picture of a cute bunny is visible清状态重启进缺陷测试页assertNoDefectsWithAI让模型扫一遍屏幕找渲染异常布局错位、文字截断、图标缺失这类最后一行用大白话确认一只可爱的兔子出现了。试一试构建 AI 模块后生成的 demo 可执行文件可以直接拿单张截图做缺陷扫描连设备都不用连./gradlew :maestro-ai:installDist export MAESTRO_CLI_AI_KEYsk-... maestro-ai-demo foo_1_bad.png密钥走MAESTRO_CLI_AI_KEY环境变量OpenAI 和 Anthropic 的 key 都认模块本身在 maestro-ai既是库也是这个演示应用。一份 flow两台平台同一套业务不用维护两份 YAML。看 wikipedia 示例工作区主 flow 只描述测试意图平台相关步骤被拆进 subflows——onboarding-android.yaml和onboarding-ios.yaml、launch-clearstate-android.yaml和launch-clearstate-ios.yaml。Android 的返回键、iOS 的手势返回这类差异由子流程吸收主流程保持一份。试一试在 wikipedia 工作区分别跑android-advanced-flow.yaml和ios-advanced-flow.yaml你会看到查询词条→进入结果页这条链路在两种设备上走的是同一份意图。你打一句话它实际做了四步你看到的是一句意图它实际在做的是流水线取屏模型调 take_screenshot 和 inspect_screen拿当前截图加元素层级树。翻译结合 cheat_sheetMaestro 全部命令语法的速查表生成 YAMLrun 之前先过一遍语法校验。执行run 驱动设备模型实时看每一步的反馈而不是盲发一串命令。复判结果由另一个模型当评审LLM-Judge即让第二个模型给第一个模型的作答打分每项评估设独立阈值官方评估集里从严到 1.0 都有。assertWithAI、assertNoDefectsWithAI、extractTextWithAI这些命令统一定义在 maestro-orchestra-models 模块。评估环节本身用的是 claude-3-5-haiku-latest 这类轻量模型——给模型打卷不需要烧旗舰模型这套思路后面省钱时还会再出现。稳与省各记一笔账稳这一层等够了再动UI 自动化里 flaky 是常态Maestro 靠两个机制兜底。延长等待extendedWaitUntil让你对某个元素出现/消失显式指定超时而不是依赖默认值碰运气示例在 demo_app 命令片段库。智能重试retry包一层失败重试内置 40ms 的状态稳定检测避免界面还没定格就重试第二次。webview 示例流程 里就是这么用的——点击可能被已加载的设备静默吞掉所以不硬等而是重复点、再确认页面已经切走- retry: maxRetries: 2 commands: - tapOn: Open Login Page - assertNotVisible: Open Login Page省这一层三级砍 Token 官方给出的三级优化每一级都能独立生效用例缓存重复场景直接复用历史分析结果同一块界面不付第二次钱。模型分级简单断言走 Claude-3-5-Haiku 这类轻量模型旗舰模型只留给复杂判断——评估环节已经这么干了。增量分析只把界面的变化区域交给模型而不是每次整图重发。时间线正在发生 → 已在路上 → 即将落地正在发生maestro mcp启动时会顺带拉起一个本地 Viewer 页面模型在设备上做的每一步操作你能实时盯着看。用户侧变化AI 测试不再是黑盒执行出了问题能立刻定位到是哪一步、哪条命令。已在路上自修复脚本——UI 元素变化导致测试失败时AI 分析新界面结构、自动更新定位策略。用户侧变化脚本维护周期从周级压到月级改一处文案、修六行断言的场景基本消失。即将落地多模态断言能验证用户说 Hi 时应用应回应 Hello World这类语音交互场景以及 Maestro Studio 集成 AI 助手你描述功能需求系统自动生成并调试用例。用户侧变化从会写 YAML 才能写测试变成会提需求就能写测试。所有代码示例均引自 Maestro 官方仓库maestro-ai/README.md 与 e2e/workspaces/ 下的示例工作区可直接运行验证。【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价