ARTICLE DETAIL

资讯详情

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

从第一条 YAML 到接入 CI:Maestro 移动测试自动化四步进阶指南

从第一条 YAML 到接入 CI:Maestro 移动测试自动化四步进阶指南 从第一条 YAML 到接入 CIMaestro 移动测试自动化四步进阶指南【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/MaestroMaestro 是一款开源的移动与 Web 端 UI 端到端E2E自动化测试框架你用可读的 YAML 流程描述点哪、输什么、看到什么算通过它就能在 Android 模拟器、iOS 模拟器或浏览器上替你跑完整个用户旅程。本文按你实际会被什么问题卡住的顺序把成长路径拆成四步第一次跑通、告别偶发失败、一套流程跨三个平台、接入流水线并让 AI 参与测试。每一步都给出仓库里的真实入口照着走即可。先说一个常见的翻车现场流程在本地跑了两遍都绿发到 CI 上却红了原因是网络慢了 2 秒断言先于页面渲染执行。这类问题不靠多睡一会儿解决而要靠理解脚本与界面的时序关系——这正是第二、三步要处理的事。第一步第一次跑通一条完整流程要解决的问题装好 Maestro 命令CLI后你能不能让模拟器里的应用被你写的 YAML 驱动起来并给出明确的通过/失败结论。这一步只要求四个动作装好 Maestro CLI并确认 Java 17 环境可用安装脚本见仓库根目录的 installLocally.sh 与 scripts/install.sh读懂一条流程里最常见的三类命令launchApp拉起应用、tapOn/inputText交互、assertVisible断言用maestro --platform web test 流程文件在浏览器里跑一条现成流程不用先准备手机失败时先看最后一行的原因描述而不是重跑十次仓库里可以直接照抄的起点e2e/workspaces/web/simple.yaml —— 一条完整的 Web 登录流程从启动、填表到断言是理解 YAML 语法的最佳小样本e2e/demo_app/.maestro/commands/ —— 每条命令都有独立的流程文件比如 launchApp.yaml、inputText.yaml、assertVisible.yaml单点练习很方便e2e/README.md —— 官方 e2e 目录的玩法说明包括如何本地起测试环境第二步告别偶发失败让脚本学会等要解决的问题流程时好时坏。网络快就绿网络慢就红页面还在转圈时断言已经先执行了。这类偶发失败是新手转专业的主要分水岭。Maestro 的处理思路是命令自带等待而不是让你手写 sleep断言类命令会持续轮询直到目标出现或超时页面慢一拍也不会误报用retry把点击可能丢失的动作包上重试仓库里就有实战样例e2e/workspaces/simple_web_view/webview.yaml 中的登录跳转就套了retryextendedWaitUntil带超时和标签的显式等待方便定位卡在哪儿用 fail_fast.yaml 这类故意失败的流程熟悉失败报告长什么样——看懂失败报告比记住命令更重要用 assertNotVisible.yaml 练习反向断言确认界面确实离开了某个状态这一步的能力清单能解释一次偶发失败的根因等待不足 / 竞态 / 环境问题会选用retry、extendedWaitUntil、scrollUntilVisible而不是加延时能把预期失败的负向用例与正常用例分开管理参考仓库的做法见 e2e/README.md 中 passing / failing 的约定第三步一套流程跑完 Android、iOS 和 Web要解决的问题你的用户不挑平台但你的测试脚本却每个平台一套、互相漂移。Maestro 用同一份 YAML 覆盖三个端靠的是平台驱动层源码在 maestro-client/src/main/java/maestro/drivers/包含 AndroidDriver、IOSDriver 和两个 Web 驱动一条流程原则上三端通用差异部分用 tag 和子流程拆出去看 e2e/workspaces/wikipedia/ 这个真实示例android-flow.yaml与ios-flow.yaml共享 subflows/ 下的启动、引导页等公共片段各自只保留平台差异条件逻辑、循环、环境变量替换都有现成流程可读例如 e2e/demo_app/.maestro/environment-variables.yaml需要 JS 计算断言值时用evalScript命令样例e2e/demo_app/.maestro/commands/evalScript.yaml第四步接入流水线并让测试开始自己会想要解决的问题测试只在你本地跑等于没跑。你需要它进 CI出报告甚至由 AI 参与编写与排查。仓库本身就按这个标准运作见 AGENTS.md 的三层测试体系你可以直接抄作业报告体系maestro-cli/src/main/java/maestro/cli/report/ 提供 HTML 与 JUnit 格式的报告器JUnit 报告可直接被大多数 CI 平台消费测试运行编排maestro-orchestra/ 是命令执行层负责解释每条命令、应用重试策略、管理生命周期读懂它就知道失败重试发生在哪云端并行执行与 Maestro Cloud 的能力说明见 README.mdAI 侧maestro-ai/ 是 AI 能力模块含预测引擎与多家模型适配配合 Maestro Studio 的 AI 辅助编写maestro-cli/src/main/java/maestro/cli/mcp/ 里的 MCP模型上下文协议可理解为给大模型装上手的工具接口让 AI 可以真正操控设备查界面其评测用例在 maestro-cli/src/test/mcp/README.md收尾自查清单与下一步对照下面的清单定位你现在的台阶能用一条 YAML 在浏览器上跑通一个登录流程能说出自己脚本里偶发失败的根因并知道该加哪种等待而不是 sleep同一条核心流程已在 Android、iOS 上各跑绿一次流程接入了 CI失败时能拿到带截图的 HTML 或 JUnit 报告试过用 Studio 的 AI 辅助或 MCP 工具生成/排查过一条流程下一步就一件具体的事今天把 e2e/workspaces/web/simple.yaml 在浏览器平台跑绿然后按清单往下勾。【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表