
Maestro E2E 自动化入门如何用 10 分钟跑通第一个跨平台登录用例【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro如果你的团队在给一个应用做回归测试而 Android 和 iOS 两端的用例各写一套改一个 bug 就要同步维护两份脚本那 Maestro 值得试试。它是一个开源的 E2E 自动化测试框架同一个 YAML 用例可以直接跑在 Android、iOS 和 Web 上。下面带你把安装 → 跑通登录用例 → 处理失败这件事完整走完。安装与版本验证唯一的依赖是 Java 17 或更高版本装好之后在 macOS、Linux 或 WindowsWSL上直接执行curl -fsSL https://get.maestro.mobile.dev | bash export PATH$PATH:$HOME/.maestro/bin maestro --version能打印出版本号说明安装成功。登录用例完整写法把下面的内容保存为login.yaml。从上往下读就是启动应用 → 输入凭据 → 验证结果的操作顺序appId: com.example.shop --- - launchApp: clearState: true # 每次重置到初始状态 - tapOn: 登录 - inputText: standard_user - inputText: secret_sauce - tapOn: 登录 - assertVisible: 我的订单一条命令运行maestro test login.yaml有两个点值得注意。第一clearState: true会在启动前清空应用状态避免上一次已登录的数据污染本次运行。第二全程没有一行 sleepMaestro 会持续等待目标元素出现再执行下一步页面加载慢它只会多等一会而不会直接报错。最后一条assertVisible找不到我的订单时命令返回非零退出码可以直接接进 CI 判断成败。异常与 Web 变体用例怎么写把用例反过来验证负向流程——账号被锁定时应出现提示。与正向用例的差异只在输入和断言appId: com.example.shop --- - launchApp: clearState: true - tapOn: 登录 - inputText: locked_out_user - inputText: secret_sauce - tapOn: 登录 - assertVisible: 您的账户已被锁定再把目标从手机换成 Web只需把appId换成url其余语法完全一致。仓库 e2e/workspaces/web/ 里有一份现成的登录用例url: https://www.saucedemo.com/ --- - launchApp - tapOn: Username - inputText: standard_user - inputText: secret_sauce - tapOn: Login - assertVisible: Products同样的登录操作两端只有一行差异启动目标怎么写。这也是你写多平台用例时的基本心智——命令不变只改头部声明。元素定位失败的处理 运行中出现Element not found报错通常是目标文案变了。把精确匹配放宽为包含匹配- tapOn: text: contains: 登录有些元素只在部分场景出现比如广告横幅不该因为它缺席让流程失败加optional: true即可- tapOn: text: 广告横幅 optional: true断言偶发超时、重试才能过的时候用retry包裹最多试 3 次、间隔 1 秒- retry: maxAttempts: 3 interval: 1000 command: assertVisible: 加载完成如果想弄清引擎是如何实现这些等待与重试的可以看看核心执行引擎所在的 maestro-orchestra/ 目录。适不适合你的团队如果同一批用例要覆盖多个平台、人手有限还希望测试脚本能被非测试同学看懂Maestro 的 YAML 流式写法很合适。反过来如果你要做底层手势组合、验证应用内部状态或做性能测量YAML 命令的粒度就不够了老老实实用原生框架。【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考