AI驱动APP自动化测试实践方案(Maestro篇)
之前我们分享过web端和桌面端的UI自动化方案,不少小伙伴希望能出一套AI驱动APP自动化的方案,我也针对性做了一段时间调研,Maestro、Appium是目前 APP UI 自动化两大主流选型,本文将以 iOS端为例,基于Maestro进行实践讲解,后续再分享基于Appium进行IOS、Android的UI自动化实践案例。
Maestro介绍
Maestro 是一款轻量开源 UI 自动化工具,主打移动端与 Web 端测试。它采用 YAML 语法编写用例,内置 AI 元素识别、智能等待能力,无需复杂环境依赖,上手门槛低、脚本运行稳定,一份脚本即可跨安卓、iOS、浏览器多端执行。
同时工具支持 CLI 命令行调用,适合结合 AI 能力来实现 UI 自动化提效。本文将基于 iOS 模拟器,实践一下如何利用Maestro skill工作流的方式进行UI自动化
首先我们先看看 maestro cli拥有的指令

开展 UI 自动化的核心前提是获取页面控件元素,Maestro 提供了 hierarchy 指令,通过它可以拿到整个 APP 页面的 UI 层级。 拿到这份结构化数据后,AI 能够自动解析页面元素信息,把传统文本测试用例转化为 Maestro 可直接运行的脚本;最终我们通过 maestro test 命令,就能批量执行整套自动化流程。
如:下面是一个AI识别ui结构后生成的yaml文件,maestro会根据yaml文件中的相关指令去执行

yaml文件内部的具体文件就不在这里做太详细的介绍了,现在有AI,大家也不会太细致的去查看内部的内容了,不过如果想要了解的话,也可以看看该官方提供的说明:官方yaml参数说明
Skill介绍
本来是考虑参考browser use的方式,只设计成一个skill,将探索元素和执行用例放在一个skill,但是在实际操作中,发现执行skill的时间会花很多的时间,且会导致skill内容过于庞大,AI注意力分散,使得输出效果一般,因此还是拆解为了3个skill,skill如下:

skill执行流程如下:

Skill获取方式:
可以自己根据Raina提供的思路进行开发skill,如果需要现成的,也可以加入知识星球获取~里面还有很多AI赋能测试全流程的实战教程。
完整实战案例
环境准备
1、jdk17安装
mac:
# 下载brew install --cask temurin@17# 环境设置export JAVA_HOME=$(/usr/libexec/java_home -v17)# 检查版本是否生效java -version
2、maestro cli安装
brew tap mobile-dev-inc/tapbrew install mobile-dev-inc/tap/maestro
3、Xcode安装
1、打开 App Store
2、搜索 Xcode(Apple 官方)
3、点「获取」→ 验证 Apple ID → 自动下载安装。
4、安装后,直接打开即可
实操步骤
在安装好jdk、maestro cli之后,我们再进行下面的步骤操作
1、Simulator 模拟器安装
在安装好Xcode之后,打开,点击顶部菜单:Xcode → Settings(偏好设置)

点击 components(组件),点击 add platforms(添加平台)

选择你想要的 ios 版本进行安装

等待安装,时间可能会比较久
安装后,打开 xcode->open developer tool->simulator 打开模拟器

等待启动成功,效果如下:

2、skill安装
下载skill,安装到自己的ai工具中

3、获取模拟器中的bundle Id
使用codex打开项目,找到从gitcode中下载下来的项目,或者打开你自己的ios项目也OK

2、点击根目录、找到Targets下的DiaryApp>identity,找到bundle identifier后面的信息就是我们要的bundle id了,可以先复制下来,后面需要用到

3、准备一份excel测试用例
这里主要围绕用例执行,因此用例生成部分,这里不过细讲太多了(可以看看往期的文章,根据需求文档生成测试用例)
将excel用例和skill放在同个项目下

4、探索app、执行yaml编写

AI执行过程:
启动模拟器

会先进行界面的快照抓取

之后基于快照,生成探索的yaml,并执行

最终在执行成功,且元素探索没问题之后,会生成yaml文件

输入:
/maestro-run yaml文件夹 bundleId

执行脚本

在执行的过程中,可能会失败,失败的话处理方式是会先做重试,如果还是失败,则会直接中断

并且会描述原因以及给出修复建议,可以让AI根据建议进行修复,并继续执行

AI会进行页面探索和yaml修复

6、报告生成
执行md

最终执行结果

小结
现阶段AI 并非万能,目前主要还是作为辅助比较多。尤其是app的复杂程度较高,包括下面几点:
(1)app的设备环境复杂:需要考虑Android SDK、iOS 开发者证书、不同系统版本、机型、分辨率兼容性爆炸、权限、弹窗、后台、锁屏等
(2)元素定位更加复杂:包括原生控件、Flutter、React Native、WebView 混合
(3)app的交互动作也更加复杂:滑动、长按、拖拽、捏合、截屏、物理返回键、键盘、通知栏、权限弹窗
本套方案以 AI 辅助落地自动化为探索方向,无法做到完全脱离人工。内容仅供参考,如果有更好的方案,也欢迎在评论区一起讨论和学习~


如何加入我们?
复制链接到微信打开:https://t.zsxq.com/eQuvB
或扫描下方二维码,即可直接加入。

随着星球内容持续更新、服务不断完善,为匹配持续递增的内容价值与运营成本,【Raina的 AI & 测试实战圈】将在近期进行小幅涨价。还在观望的同学,可以趁当前价格尽早加入哦~。
随着星球内容持续更新、服务不断完善,为匹配持续递增的内容价值与运营成本,【Raina的 AI & 测试实战圈】将在近期进行小幅涨价。还在观望的同学,可以趁当前价格尽早加入哦~。
【加入学习圈,你将获得】
1️⃣ AI 赋能测试・从零实战落地教程
紧跟行业最新 AI 技术(Skills、MCP、Openclaw、Dify、AI IDE等),将其结合到软件测试全流程中提效,整理模块化学习路线 + 实操步骤+思路和踩坑经验等,零基础也能快速入门;圈内随时提问,Raina都会回答。
2️⃣ 全栈软件测试干货
分享软件测试各类型技术干货、高效工作方法、项目复盘、个人成长思考,适配不同阶段测试从业者。
3️⃣ 专属自研资料 & 工具包
《Raina 测试知识库》| 全套面试题库 | RainaTest 自研平台 | 视频教程 | 职场模板 + AI 工具合集网站等(持续更新,价值超入圈费)
4️⃣ 求职 & 晋升指导
面试技巧、求职经验、简历建议等。
5️⃣ 全年免费专属答疑
星球全年可免费向Raina直接提问,这里是一个纯技术交流的圈子,你可以就具体的技术难题、测试策略或职业发展向我提问
往期干货内容:
基于Browser use+Skills实现UI自动化测试实战案例
基于Skills的接口自动化测试|新增 MySQL 断言,实现接口 + 数据库双校验
基于Skill的接口自动化测试方案|新增多接口串联 + 自然语言用例
基于playwright-cli +Skills实现UI自动化测试实战案例
测试工程师必备 Skills 合集:从需求→用例→报告全流程提效
AI驱动接口测试必备:一键生成标准化接口文档的skill(告别手动复制)
接口自动化测试 Skills 合集:从接口用例生成->脚本执行->报告全流程提效
夜雨聆风