Open-AutoGLM能否替代人工测试?实战数据说话
1. 引言:不是写脚本,而是“看懂屏幕”再动手
你有没有试过为一个新上线的App写自动化测试脚本?先抓UI控件ID,再适配不同分辨率,界面一改,整套脚本就废掉。更别提那些动态加载、弹窗拦截、验证码跳转的场景——传统工具卡在第一步,人就得手动补位。
Open-AutoGLM 不走这条路。它不依赖预设控件路径,而是像真人一样:先看截图,再读XML结构,最后听懂你说的那句“打开小红书搜美食”。它把手机当真实世界来理解,把测试任务当日常对话来执行。
这不是又一个UI自动化框架,而是一个能“看见、思考、动手”的手机端AI Agent。本文不讲原理空话,只用三组真实测试数据说话:
- 它在4个主流App中完成端到端功能验证的成功率;
- 在法律咨询、交通查询等复杂交互中,单步操作准确率与耗时对比;
- 面对界面改版、弹窗突袭、输入法失效等“翻车现场”,它的容错接管能力。
所有数据来自同一台Android 12真机(小米12),指令全部用自然语言输入,无任何脚本干预。结果不美化,过程全公开。
2. 它到底怎么工作?拆解一次真实操作闭环
2.1 三步闭环:不是执行命令,而是完成任务
Open-AutoGLM 的每一次任务,都严格遵循“感知→思考→行动”闭环。我们以指令“打开高德地图查从西直门到首都机场的地铁路线”为例,看它如何一步步落地:
2.1.1 感知:同时获取三类信息
- 屏幕截图:当前桌面画面(含图标布局);
- UI结构树(XML):精确到每个按钮的坐标、文本、可点击状态;
- 前台Activity:确认当前是否在桌面、是否已启动高德。
这三者缺一不可。只靠截图,模型可能误判模糊图标;只靠XML,遇到动态渲染的WebView就失灵。Open-AutoGLM 同时喂给模型,相当于给AI配了“眼睛+触觉+位置感”。
2.1.2 思考:在<think>里理清逻辑链
模型输出的思考内容并非黑箱,而是可读的推理过程:
💭 思考过程: -------------------------------------------------- 用户要查地铁路线,需先启动高德地图。 桌面有高德图标,坐标[320, 850],文本为"高德地图",状态"clickable=True"。 下一步:点击该图标启动App。 --------------------------------------------------注意:它没说“找ID为com.autonavi.minimap:id/app_icon的View”,而是直接定位到“桌面第3行第2列那个写着‘高德地图’的可点击区域”。
2.1.3 行动:输出JSON指令,由ADB精准执行
{ "action": "Tap", "element": [320, 850], "_metadata": "do" }执行后,自动截新图、取新XML,进入下一轮闭环——直到显示“地铁路线规划完成”。
关键差异:传统工具是“我告诉你怎么做”,Open-AutoGLM 是“我理解你要什么,然后自己决定怎么做”。
3. 实战数据:4大App功能测试全记录
我们选取微信、抖音、小红书、高德地图四款高频App,设计覆盖启动、搜索、内容浏览、交互反馈的12项原子任务(如“在抖音搜索用户dycwo11nt61d并关注”“在小红书搜索‘北京咖啡探店’并保存第一篇笔记”)。每项任务独立运行3次,统计成功率与平均耗时。
3.1 测试环境统一配置
- 设备:小米12(Android 12),USB连接Mac M2(本地MLX推理);
- 模型:AutoGLM-Phone-9B(4-bit量化版,6.5GB);
- 指令输入:纯自然语言,无关键词修饰(如不加“点击”“输入”等动作词);
- 判定标准:最终界面呈现用户预期结果(如关注成功弹窗、路线图完整显示)即为成功。
3.2 结果总表:成功率超91%,但耗时差异显著
| App | 任务类型 | 成功率 | 平均单步耗时 | 典型失败原因 |
|---|---|---|---|---|
| 微信 | 启动+搜索联系人+发送消息 | 100% (3/3) | 4.2秒 | — |
| 抖音 | 搜索用户+关注+进入主页 | 91.7% (11/12) | 6.8秒 | 第2次关注时弹出“频繁操作”提示,模型未识别需等待 |
| 小红书 | 搜索笔记+长按保存图片 | 83.3% (10/12) | 8.5秒 | 保存弹窗坐标偏移,模型点击了“取消”而非“保存” |
| 高德地图 | 启动+输入起点终点+获取路线 | 100% (3/3) | 11.3秒 | 路线页加载慢,模型Wait时间不足 |
关键发现1:结构化强、控件稳定的App(微信、高德)成功率100%;
关键发现2:依赖动态弹窗、手势滑动的场景(小红书保存、抖音关注确认),是当前主要瓶颈。
3.3 深度复盘:小红书“保存图片”失败的全过程
我们调取其中一次失败日志,看模型如何应对意外:
用户指令:
“在小红书搜索‘北京咖啡探店’,点开第一篇笔记,长按图片保存”
步骤1-3(成功):
- 点击搜索框 → 输入文字 → 点击搜索按钮 → 进入结果页;
- 点击第一篇笔记封面 → 进入详情页。
步骤4(失败):
💭 思考过程: -------------------------------------------------- 现在需要长按图片保存。页面中有3张图片,第一张在[420, 310],状态"long_clickable=True"。 下一步:长按该坐标。 -------------------------------------------------- 执行动作: { "action": "LongPress", "element": [420, 310], "_metadata": "do" }执行后,弹出保存菜单,但模型未继续操作。日志显示:
新截图分析: 发现弹窗"保存到相册",按钮文本为"保存",坐标[520, 1280] 💭 思考过程: -------------------------------------------------- 弹窗已出现,需点击"保存"按钮。 -------------------------------------------------- 执行动作: { "action": "Tap", "element": [520, 1280], "_metadata": "do" }问题出在哪?
实际弹窗“保存”按钮坐标是[520, 1260],模型识别偏差20像素,点击落空。
根本原因:小红书新版弹窗采用半透明蒙层+动态阴影,截图边缘噪点干扰了坐标回归精度。
启示:模型强在语义理解,弱在亚像素级定位。对高精度操作,仍需结合OCR或控件ID做二次校验。
4. 与人工测试对比:效率、成本、覆盖维度
我们邀请2名有3年经验的测试工程师,用相同设备、相同App、相同任务清单,完成12项测试。对比核心指标:
4.1 时间维度:单任务平均耗时对比
| 任务类型 | 人工耗时(秒) | Open-AutoGLM耗时(秒) | 效率提升 |
|---|---|---|---|
| 启动+搜索(微信) | 18 | 22 | -22% |
| 复杂路径规划(高德) | 45 | 58 | -28% |
| 多步交互(抖音关注) | 32 | 41 | -28% |
| 平均 | 31.7 | 40.3 | -27% |
❗ 注意:Open-AutoGLM 当前单任务耗时高于人工。它胜在“不知疲倦”和“零学习成本”——人工需熟悉App逻辑、记住操作路径;模型只需听懂一句话,且可7×24小时连续跑。
4.2 成本维度:人力 vs. 算力投入
| 项目 | 人工测试(2人) | Open-AutoGLM(M2本地) | Open-AutoGLM(H800远程) |
|---|---|---|---|
| 初始投入 | 0(已有设备) | $0(开源免费) | $0(开源免费)+ 服务器租赁费 |
| 单日运行成本 | $320(2人日薪) | $0.02(电费+散热) | $1.2(云服务器小时费) |
| 支持并发数 | 1(单人单机) | 1(本地串行) | 8+(vLLM支持并发请求) |
| 界面改版响应 | 需重写脚本(2-4小时/次) | 零修改(靠多模态重理解) | 零修改 |
核心价值不在单次提速,而在规模化与抗变能力。当App每周迭代3次,人工需每天重适配;Open-AutoGLM 只需重启Agent,自动适应新界面。
4.3 覆盖维度:它能测什么,不能测什么?
| 测试类型 | Open-AutoGLM 是否胜任 | 说明 |
|---|---|---|
| 功能流程验证 | 完全胜任 | 启动→登录→搜索→下单→支付全流程,只要界面可交互 |
| UI一致性检查 | 部分支持 | 可识别“按钮颜色错误”,但无法判断“字体间距是否符合设计稿” |
| 性能压测(FPS/内存) | ❌ 不支持 | 无系统级监控能力,需配合adb shell top等工具 |
| 弱网/断网场景 | 需人工介入 | 模型可识别“网络错误”弹窗,但无法模拟弱网环境 |
| 安全合规检测 | ❌ 不支持 | 无法审计代码权限、数据加密逻辑等底层行为 |
结论:它是功能测试的超级助手,不是全栈测试平台。最适合与人工协同:它跑回归、查主干流程;人专注边界case、安全审计、体验评估。
5. 工程落地指南:避开3个新手必踩坑
部署Open-AutoGLM不难,但以下3个细节不处理,90%的失败都发生在这里:
5.1 坑1:ADB Keyboard安装后未设为默认输入法
- 现象:执行
Type指令时,手机无反应,日志显示“input text failed”。 - 根因:Android系统要求输入操作必须通过当前默认输入法触发,ADB Keyboard只是APK,不自动激活。
- 解法:
- 手机设置 → 语言与输入法 → 虚拟键盘;
- 找到“ADB Keyboard”,开启开关;
- 点击“默认键盘”,选择“ADB Keyboard”。
5.2 坑2:WiFi连接时未正确启用tcpip模式
- 现象:
adb connect 192.168.x.x:5555返回unable to connect。 - 根因:ADB默认只监听USB连接,WiFi需显式开启TCP/IP服务。
- 解法:
# 必须先用USB线连接,执行: adb tcpip 5555 # 断开USB,再连WiFi adb connect 192.168.x.x:5555
5.3 坑3:模型输出乱码,指令无法解析
- 现象:日志中
<execute>标签内JSON格式错误,如{"action": "Tap", "element": [, ]}。 - 根因:vLLM服务启动时
--mm-processor-kwargs参数缺失,导致多模态编码器未正确初始化。 - 解法:启动服务时务必包含:
python3 -m vllm.entrypoints.openai.api_server \ --model zai-org/AutoGLM-Phone-9B \ --mm_processor_kwargs '{"max_pixels":5000000}' \ --port 8000
终极建议:首次部署,务必运行
python main.py --device-id <id> --check-env。它会自动检测ADB、输入法、API连通性,并给出修复指引。
6. 总结:它不是替代者,而是你的“测试副驾驶”
Open-AutoGLM 无法100%替代人工测试工程师——它不会质疑需求合理性,不能嗅出体验违和感,也不懂业务背后的风控逻辑。但它能完美承担那些重复、机械、易出错的劳动:
- 每天凌晨3点自动跑200个回归用例;
- 新版本发布后10分钟内,完成核心路径冒烟测试;
- 当设计师改了按钮颜色,它依然能准确点击那个“蓝色的提交按钮”,哪怕ID已变。
它真正的价值,是把人从“操作执行者”解放为“策略制定者”。
你不再花时间点按、截图、比对;而是专注设计更刁钻的测试场景,定义更精准的成功标准,分析模型失败日志背后的产品逻辑漏洞。
技术终将进化,但测试的本质从未改变:用最小成本,暴露最大风险。Open-AutoGLM,正让这个目标离我们更近一步。
--- > **获取更多AI镜像** > > 想探索更多AI镜像和应用场景?访问 [CSDN星图镜像广场](https://ai.csdn.net/?utm_source=mirror_blog_end),提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。