基于AI实现能“自愈”的UI自动化测试

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


之前的文章中,我分享了用Midscene.js + Qwen-VL实现视觉大模型驱动的UI自动化测试,文章受到了很多小伙伴的点赞和关注,可见AI在UI自动化测试方面的应用算是测试行业一个普遍需求。使用这一组合能达到的效果主要在于,编写测试用例不需要再借助传统选择器的元素定位方式了,而是用自然语言描述测试指令(如"点击左上角语言切换按钮"),通过多模态模型实现语义级界面理解。这种模式使测试代码与 DOM 结构解耦,界面重构后无需修改脚本,并且也突破了传统自动化测试框架对 Canvas/SVG 等非标准元素的识别限制。

不过,在使用这一组合的时候,小伙伴们也发现了一个问题,就是需要使用尽可能清晰的自然语言详细描述每一步操作,描述地稍微粗略些都可能导致大模型无法理解指令或定位不到元素,比如,官网给出了这样的示例:

❌ 错误示例

搜'耳机'

✅ 正确示例

找到搜索框(搜索框的上方应该有区域切换按钮,如 '国内', '国际'),输入'耳机',敲回车

这样写出来的自动化测试用例看起来十分冗长和繁琐,测试工程师仍然需要人为编写大量的自然语言测试指令。有没有更智能和更省力的方案?有,只需要在Midscene.js中配置UI-TARS模型。这是由字节开源的专为GUI 任务而生的智能体模型。这一模型具备高级推理能力,能够在采取行动之前进行思考推理,显著提高了其性能和适应性。那么效果如何呢?给大家展示一下试用效果:

首先,Midscene官方推荐大家在 UI-TARS 中使用目标驱动的提示词(target-driven prompt),这样可以编写出更简洁的测试脚本。比如下图中的登录界面:

如果用Qwen-VL模型,建议编写这样的测试脚本:

await ai('在用户名输入框中输入admin');
await ai('在密码输入框中输入test123456');
await ai('输入验证码'); //AI会自己识别验证码是啥
await ai('点击登录按钮');

而如果使用UI-TARS模型,你只需要把脚本缩减为一句话:

await ai('使用账号admin和密码test123456登录系统');

就这么简单的指令,就能让Midscene成功完成登录操作了。注意,上面这个脚本甚至省略了要求输入验证码的说明,UI-TARS根据在模型预训练中学到的登录操作经验,会自己主动输入验证码然后再点击登录按钮!看看他的思考过程:

同样地,对于搜索功能,也无需再用冗长的描述了,只需要说三个字,UI-TARS就能顺利完成搜索任务,它的观察和思考过程如下:

await ai('搜“耳机”');

为什么UI-TARS这么智能?因为与通用多模态模型不同,UI-TARS专为GUI而生,它是在大规模的 GUI 屏幕截图数据集上进行训练的,并通过元素描述、密集标注、状态转换标注、问题回答和 Set-of-Mark 提示等多种任务大大提升了对 UI 元素的上下文理解和精确标注能力。简而言之,UI-TARS更擅长理解常见的UI界面控件功能和UI交互指令的含义,因此允许我们用更简洁的语言描述UI操作任务。


除了让测试脚本更简洁,UI-TARS另一大优势在于其能够主动处理一些可能导致 UI 自动化测试失败的问题。在众多导致 UI 自动化测试不稳定的原因中,以下两个是很常见的:

1.随机页面延迟:页面加载延迟随机出现,导致控件识别失败

2.非预期弹框:操作系统或被测系统弹出预期外的对话框,导致测试失败

对于随机页面延迟问题,当UI-TARS执行某项操作后观察发现界面正在加载(比如有loading动画),它会自动执行智能等待操作,直到页面加载完毕:

而对于非预期的弹框,UI-TARS也能做到主动把弹窗关掉之后再进行下一步操作:

最值得一提的是,UI TARS能主动进行失败后的重试,并且发现一种方法行不通就会尝试不同的操作方法。而且它还会反思之前的失败原因,并从错误的经验中学习,比如:

像这样,在失败后自动重试,并通过反思式学习持续优化策略的能力,可以说是让UI自动化测试能够“自愈”的关键。

之前当我们使用Qwen-VL做自动化测试时,一条agent.ai代码指令往往只对应一个步骤,也就是一次Planning - Insight - Action的闭环:

而使用UI-TARS进行自动化测试时,可以从生成的测试报告中看到,一条agent.ai代码指令经常对应着多个Planning - Insight - Action的闭环,并且对于复杂任务和遇到失败重试的情况时,会有一条非常长的Planning - Insight - Action序列。这意味着UI TARS比通用多模态大模型拥有更大的“自主性”和更强的探索能力

为什么UI-TARS能这么强?字节公开发表的论文展示了最新发布的UI-TARS-1.5的4大强项:

(Arxiv地址:https://arxiv.org/abs/2501.12326)

1. 视觉感知增强

UI-TARS-1.5能够精准理解界面和定位元素的能力得益于它用海量GUI截图训练出的视觉理解能力,能感知按钮、文字等元素的上下文关系。比如,对于搜索框旁边的放大镜🔍按钮,用户无需在指令中告诉UI-TARS这个按钮的作用,它就能明白这个按钮的作用是“搜索”。

2. 跨平台统一操作

无论是Windows电脑、安卓手机还是网页,UI-TARS都能操作。它将不同平台的动作(如电脑的鼠标点击、手机的触摸)统一成标准化的“点击”“输入”等指令,实现“一次学习,全平台通用”。

3. 快思考与慢思考

UI-TARS的决策分两种模式:

● 快速反应:简单任务(如点击登录按钮)瞬间完成;

● 深度思考:复杂任务(如“订最便宜的机票”)会分解步骤、规划路径,甚至发现错误后自我纠正。通过这一思维机制,模型能够模拟人类思考流程,可以说UI TARS不只是完成指令,而是真正理解并完成任务目标。

4. 从经验中学习,越用越聪明

通过数百台虚拟机模拟真实操作,UI-TARS能自动收集操作数据,不断优化模型。比如它发现用户经常在某个步骤失败,就会针对性加强训练,减少同类错误,实现“无监督进化”。这种机制让它在迭代到1.5版本时,任务成功率显著提升,甚至在游戏测试中达到100%的完成率。

在多项GUI任务测评中UI-TARS-1.5都取得了SOTA 表现,甚至超越了原先的业界标杆Claude 3.7:

总而言之,对于使用通用多模态大模型的自动化框架,存在适应性弱和维护成本高的问题。而UI-TARS 属于“原生智能体模型(Agent Model)”,具备完整的感知-推理-记忆-行动一体化结构,能在训练中不断积累知识与经验,具备更强的泛化能力与适应能力。因此,Midscene.js + UI-TARS的组合不再依赖繁琐的人工规则与复杂的提示工程,也无需重复设定交互步骤,让UI自动化测试工作更加便捷和智能。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值