Maestro MCP 实践指南:让编码 Agent 直接操作真机做 UI 自动化测试
Maestro MCP 实践指南让编码 Agent 直接操作真机做 UI 自动化测试【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro你让编码 Agent 改完了登录页的一个功能它回复已完成但没人真机验证过或者你每次都要手写 E2E 测试写完还得自己盯着模拟器跑。Maestro 内置的 Maestro MCP 就是针对这两个问题的一条maestro mcp命令把设备控制能力以 MCP 协议暴露给 Claude Code、Cursor 等任意 MCP 客户端Agent 可以检查屏幕、点击、滚动、断言还能把验证沉淀成可重复执行的 YAML 流程。执行链路从 Agent 一句话到屏幕操作整个管线分三段。输入端是任意支持 MCP 的编码 Agent用自然语言描述意图中间层是 Maestro CLI 内的 MCP 服务通过 STDIO 通信暴露list_devices、inspect_screen、take_screenshot、run等工具——inspect_screen返回的是精简 JSON 视图层级带缩写键和默认值说明run支持执行内联 YAML、单个测试文件或整个流程目录且执行时做语法校验输出端是模拟器、浏览器或物理 Android 设备上的真实操作结果。同一进程里还会启动一个本地 HTTP 服务把 Maestro Viewer 嵌进你的 IDE每条 MCP 命令执行时实时可见。三步跑通安装、配置、出第一个流程第一步安装 CLI要求 Java 17macOS/Linux/WSL 通用curl -fsSL https://get.maestro.mobile.dev | bash第二步把 MCP 接入你的编码 Agent配置就是指向maestro mcp命令仓库里有现成样例maestro-mcp.json。--no-viewer可关闭 Viewer--viewer-port可指定固定端口。第三步直接让 Agent 写并验证一个流程它生成的典型产物长这样appId: com.example.app --- - launchApp - tapOn: Login - assertVisible: Welcome流程以纯 YAML 留在仓库里CI 里可以直接跑成为确定性的回归测试。场景Agent 改功能时顺手完成真机验证比较典型的用法是改完即验。你让 Agent 重构某个页面它可以先inspect_screen记录改动前的界面结构改完代码后重新检查屏幕、截图比对确认目标元素还在、文案没丢之后你再要求把这个验证沉淀成 E2E 流程它产出的就是上面那种 YAML。相比人工开模拟器点一遍好处是验证过程和可复现的测试产物一次生成。注意物理 iOS 设备目前尚不支持iOS 场景走模拟器。Agent 写了选择器却找不到元素这是新手最常踩的坑问题、原因和解法如下。问题Agent 写出的text:选择器匹配不到元素。原因它是从截图看出来的文案——比如一个心形图标按钮被它臆造成 Favorite 按钮而实际层级里根本没这个文本且 Maestro 的text:匹配器是全串正则部分字符串不匹配。解法让 Agent 逐字复制inspect_screen输出里的txt值或对长文案用RNR 352.*这类正则锚定。问题把inspect_screen输出里的键直接写进了选择器。原因a11y、rid等是精简 JSON 的缩写键不是 Maestro 选择器键。解法a11y要映射成text:rid对应id选择器只用text、id、index和位置匹配器。工具实现集中在 maestro-cli/src/main/java/maestro/cli/mcp/tools/MCP 配置样例与评估脚本在 maestro-cli/src/test/mcp/想看更多可执行示例可参考 e2e/workspaces/。【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考