不写测试代码,也能给移动应用做自动化 UI 测试
2026/9/11 14:33:04 网站建设 项目流程

不写测试代码,也能给移动应用做自动化 UI 测试

【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro

发版前,你得在真机和模拟器上把每个页面、每条流程手动点一遍——登录、下单、退出、再登录,一个下午就耗在重复点击上,还总担心漏掉某个分支。Maestro 就是来解决这件事的:它用一个可读的 YAML 文件描述你的操作步骤,再在 Android、iOS 甚至浏览器上自动执行。它适合不懂测试框架、只想把回归测试交给机器的开发者、测试和产品同学。

为什么选 Maestro

  • 跨平台:同一套写法覆盖 Android、iOS 和 Web(含 Flutter、React Native、混合应用),跑在模拟器、真机或浏览器上。
  • YAML 而非代码:操作写成launchApptapOnassertVisible这类短句,人读得懂,改起来也快。
  • 自带智能等待:命令会等元素出现再执行,动态界面不易"跑飞",不用手写 sleep。
  • 解释执行:流程是解释跑的,无需编译,改完立即生效。
  • 一条命令安装:支持 macOS、Linux 和 Windows(WSL)。

从 0 到跑起来

先确认装了 Java 17 及以上:

java -version

用一条脚本安装命令行工具(CLI,即通过终端输入指令运行的程序):

curl -fsSL "https://get.maestro.mobile.dev" | bash

最小可运行的流程,就一个 YAML 文件:

appId: com.android.contacts --- - launchApp - tapOn: "Save" - assertVisible: "Profile"

接着运行:

maestro test flow.yaml

控制台会逐步打印每一步结果,全部通过即返回成功。

核心功能怎么用

1. 把操作步骤写成流程,交给测试

真实场景:新版本改了登录页,你想确认"能登录并看到首页"没被破坏。怎么操作:把路径写成tapOn/inputText命令,用assertVisible收尾断言。得到什么:一条可重复跑、能进 CI 的回归用例,替掉你每天手动点的那一遍。

2. 给流程录一段演示视频

真实场景:向开发报一个偶现 bug,光贴截图说不清。怎么操作:

maestro record flow.yaml

--local可本地渲染并指定输出文件,如maestro record flow.yaml demo.mp4 --local。得到什么:一段把每步操作叠加渲染出来的视频,演示和 bug 单都好用。注意它不是"边点边录、自动生成脚本",而是把已写好的流程渲染成视频。

3. 看不清元素?直接查界面结构

真实场景:tapOn找不到目标,多半是没选对定位条件。怎么操作:

maestro hierarchy maestro query --text "Login"

得到什么:当前屏幕的视图层级(也就是界面上各控件的树状结构)和匹配到的元素,帮你把选择器写准。

进阶技巧

  • 多设备并行maestro test --shard-split 2 flows/把流程均分到 2 台设备;--shard-all 2则是每台都跑全量。旧的--shards已弃用。
  • 出报告maestro test --format HTML flows/生成 HTML 报告,CI 里常用--format JUNIT
  • 挑设备/平台--device "Emulator_1,Emulator_2"指定设备,-p android-p ios指定平台。
  • 按标签筛选--include-tags smoke--exclude-tags slow决定这次跑哪些流程。
  • 注入变量--env API_KEY=xxx把配置传进流程。

常见坑

  • 别把 record 理解成"录制生成脚本":它只负责把已有流程渲染成视频,脚本仍需你自己写。
  • 分片数不能超过设备数--shard-split N需要 N 台已连接设备,否则直接报错。
  • 设备要先连上--device指定的设备若没连上会报 "not connected";Web 流程目前是 Beta,先确认入口地址可达。

写在最后

Maestro 把"写测试"的门槛压到"会读 YAML",回归、跨端、演示都能覆盖。从仓库里的 README 和 e2e/workspaces 的示例入手,能最快看懂各种命令的实际写法。

【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询