最近在公司里落地了一套移动端 AI 自动化回归方案,想拿出来和大家交流一下,也听听有没有类似场景的同学。
先说背景。
我们这边移动端有 Android 、iOS ,现在还有鸿蒙。业务迭代比较快,每次发版前都要做一些主流程回归。
比如:
- 登录
- 内容浏览
- 内容发布
- 视频播放
- 核心页面跳转
- 多端基础兼容验证
问题是,测试资源并不是特别充足。
不是没人测,而是没有一个专门的人长期维护复杂自动化。很多时候是测试同学过一遍主流程,开发自己再补一遍。
时间紧的时候,大家其实都知道一些边角路径覆盖不到,但也只能先保核心链路。
之前也看过传统自动化方案,比如 Appium 、xpath 、坐标、录制回放这些。
实际落下来,问题基本差不多:
页面一改,脚本就容易挂。
Android 、iOS 、鸿蒙三端表现不完全一样。
弹窗、权限、加载中、toast 、偶现卡顿这些情况,都要额外处理。
最关键的是,如果没有专门自动化测试同学长期维护,这套东西很容易变成:
刚开始能跑,过一段时间没人敢动。
所以我后来尝试了另一条路:
能不能把 case 写成人话,然后让模型看真实手机截图,自己判断下一步怎么操作。
比如一个 case 可能就是:
打开 App ,登录账号,进入首页,确认能看到推荐列表。
系统拿到这个 case 后,分配一台真机。
执行过程中,每一步截图给 VLM ,让模型判断当前页面状态、下一步点哪里、输入什么、是否已经完成。
这个方向我一开始也只是想验证一下。
但后面做着做着,发现单纯做一个本地 demo 意义不大。因为公司里真正要用,光能跑起来还不够。
所以后面我把它补成了一个偏平台化的东西,目前已经在公司内部落地使用。
大概流程是:
外部系统投递一批 case
↓
平台根据端类型寻找空闲设备
↓
真实手机开始执行
↓
每一步记录截图、模型判断、操作结果
↓
执行结束后生成报告
↓
case 结果和批次结果回传给业务系统
现在它可以覆盖 Android 、iOS 、鸿蒙三端真机。
不过我自己的感受是,这个东西真正有价值的地方,不是“AI 能点手机”。
单纯让模型看图点一下,其实很容易做成 demo 。
真正落地的时候,麻烦的反而是这些:
- 页面是否已经稳定下来
- 模型是不是一直卡在同一个页面
- 弹窗、权限、广告、toast 这种临时 UI 怎么处理
- 失败以后怎么复盘
- 多台设备怎么调度
- 结果怎么让内部系统消费
- 怎么让开发和测试愿意相信这个报告
所以我后面做的时候,重点其实放在了执行链路上,而不只是模型本身。
当然,现在这个方案也不是没有问题。
稳定性肯定还不如写死脚本。
同一个 case 多跑几次,偶尔会出现模型判断不一致。
起始状态也很重要。账号状态、权限状态、弹窗状态如果不干净,模型很容易被带偏。
成本也要算。因为每一步都调 VLM ,跑多了肯定不是免费的。
另外像验证码、人脸、安全键盘、强风控这些场景,我也不觉得它适合硬做。
所以我现在对它的定位不是替代测试,也不是替代传统自动化。
更像是一个兜底工具。
比如:
- 开发提测前,先跑一遍主流程
- 发版前,跑几条核心冒烟
- 晚上定时跑一批基础回归
- Android 、iOS 、鸿蒙三端做主链路对比
- 没有专门自动化测试岗位的团队,先把最痛的几个流程托管起来
目前我们内部已经用它跑了一些真实场景,确实能减少一部分重复点点点的工作。
但我也知道这个方向还不算成熟,所以想听听大家意见。
我比较想请教几个问题:
- 你们公司移动端回归一般是怎么做的?
- 如果没有专门自动化测试岗位,自动化最后通常是谁维护?
- VLM 看图操作真机这种方式,你们觉得最大的问题会是稳定性、成本,还是失败复盘?
- 如果只是用来兜底主流程冒烟,而不是做完整测试,你们觉得有没有价值?
- 这种方案要接进公司内部测试平台,你们最关心的是报告可信度、执行稳定性,还是环境隔离?
我把目前整理出来的版本开源了,项目叫 ai-phone:
https://github.com/dongxinsuperman/ai-phone.git
目前主力分支是 next/server-brain,main 分支已经归档冻结。
发出来主要不是想说这个方案已经多完善,而是因为它确实在公司里跑起来了,也踩到了一些传统自动化和 VLM 落地之间的问题。
想听听大家怎么看这个方向,欢迎提建议,也欢迎拍砖。