乐于分享
好东西不私藏

AI驱动APP自动化测试实践方案(Maestro篇)

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 辅助落地自动化为探索方向,无法做到完全脱离人工。内容仅供参考,如果有更好的方案,也欢迎在评论区一起讨论和学习~


以上是今天分享的内容,除了APP自动化方案,Raina还分享了web端、桌面端自动化测试的多种实践方案,相关内容也都已经更新在Raina的AI&测试实战圈 知识星球里了,附带详细教程以及相关的 skill 包,跟着步骤操作就可以上手,提高日常测试工作效率。感兴趣的小伙伴可以加入了解哦~

如何加入我们?

复制链接到微信打开:https://t.zsxq.com/eQuvB

或扫描下方二维码,即可直接加入。

随着星球内容持续更新、服务不断完善,为匹配持续递增的内容价值与运营成本,【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(告别手动复制)

基于Midscene.js实现UI自动化测试的实践案例

接口自动化测试 Skills 合集:从接口用例生成->脚本执行->报告全流程提效

测试工程师必备:生成Excel/Xmind格式的测试用例skill

测试工程师必备:快速生成Jmeter脚本的skill

AI驱动UI自动化测试的4种实践方案对比(详细解析)