不止是自动化:揭秘 PixelUI 背后的 AI Agent,如何像专家一样“看”和“思考”
本文将深入揭秘我们团队自研的一套 AI Agent 驱动的 Web 自动化测试解决方案——PixelUI。它能直接“读懂”您用自然语言编写的测试用例(包含标题、步骤、预期结果),通过一个基于 LangGraph 构建的强大 Agent,像人类测试专家一样思考、观察、操作浏览器,并精准发现Bug。我们将重点剖析其背后的四大核心技术:思想链(CoT)驱动的内在思考机制、精准捕捉瞬时元素的动态快照技术、
摘要: 本文将深入揭秘我们团队自研的一套 AI Agent 驱动的 Web 自动化测试解决方案——PixelUI。它能直接“读懂”您用自然语言编写的测试用例(包含标题、步骤、预期结果),通过一个基于 LangGraph 构建的强大 Agent,像人类测试专家一样思考、观察、操作浏览器,并精准发现Bug。我们将重点剖析其背后的四大核心技术:思想链(CoT)驱动的内在思考机制、精准捕捉瞬时元素的动态快照技术、视觉与结构结合的混合元素定位方案,以及兼顾效率与稳定的智能批量执行策略。我们的目标是:彻底终结繁琐的“点点点”,让高质量的自动化测试变得前所未有的简单和高效。
一、当“点点点”成为瓶颈:传统Web测试的“不眠之夜”
在追求敏捷和持续交付(CI/CD)的今天,软件迭代速度越来越快,但Web测试的效率却常常“拖后腿”。我们都熟悉这样的场景:
-
效率黑洞,成本高昂: 大量回归用例依赖人工执行,一个复杂的业务流程可能需要数小时才能验证完毕,耗费巨大的人力与时间。
-
重复的“体力活”: 测试人员日复一日地执行相同流程,不仅枯燥,更容易因疲劳而出错,导致低级Bug遗漏。
-
自动化脚本的“玻璃心”: 传统自动化脚本虽然能提效,但极其脆弱。页面UI一调整,元素定位就失效,脚本就崩溃。维护这些脚本的成本,有时甚至不亚于重写。
核心痛点是: 如何将用自然语言描述的、最符合业务逻辑的“手工测试用例”,低成本、高效率地转化为稳定可靠的自动化测试能力?这成为了我们探索的起点——构建一个真正能理解测试意图、模拟专家行为的AI测试Agent。
二、为测试注入“灵魂”:能看、会想、可执行的AI Agent架构
我们的解决方案核心如下图所示,它模仿了人类测试专家的工作方式,我们生动地将其比喻为AI的“大脑”、“眼睛”和“手”,并通过“智能反馈循环”将其串联成一个高鲁棒性的智能体。
我们的 AI 执行引擎,主要分为三个核心层次:
第一层,是意图理解与规划层,这是 AI 的‘大脑’。它会将一个复杂的多步骤操作的场景,结合历史动作和当前的页面信息时,让大语言模型分析当前的执行状态并会规划出下一步操作,例如:‘我的下一步操作,是在当前页面上,找到并点击那个代表登录的按钮’。
第二层,是多模态感知与元素定位层,这是 AI 的‘眼睛’。有了大脑的指令,‘眼睛’就需要开始在当前的浏览器界面上进行观察和定位。它接收到‘点击登录按钮’这个意图后,会综合分析当前的浏览器截图和 HTML 结构树。它会像人一样,通过多种线索来寻找目标:比如,寻找文字内容为‘登录’的元素,或者寻找一个视觉上看起来像按钮的区域。这种视觉与结构的双重保证,极大地提升了元素识别的准确率。
第三层,是浏览器执行层,这是 AI 的‘手’。当‘眼睛’精准地锁定了目标元素后,比如,它确定了要点击的是页面坐标 (197,300) 处的那个ref-id为e32的元素。‘手’就会调用底层的 Playwright 等自动化框架,向浏览器发送最直接的指令,完成点击动作,并获取操作完成后的新页面状态。
同时,在这个过程还有贯穿始终的‘智能反馈循环’。如果点击操作失败了,或者页面加载缓慢,传统脚本可能就直接报错退出了。但我们的 AI 不会。执行层的结果会立刻反馈给大脑。AI 会重新感知页面,进行动态策略调整和异常智能处理。比如,它发现按钮被一个弹窗遮挡了,它会规划一个新的意图‘先关掉弹窗’;如果页面没反应,它会智能等待。这种实时的反馈和纠错能力,确保了整个执行过程的稳定和鲁棒。
这种实时的闭环反馈和纠错能力,确保了整个执行过程拥有前所未有的稳定性和鲁棒性。AI操作浏览器不再是神秘魔法,而是一个集“大脑”思考、“眼睛”观察和“手”执行于一体,并拥有强大自我校正能力的智能体。
三、揭秘“超能力”:让AI Agent超越人类专家的四大核心技术
一个好的架构理念需要强大的技术细节支撑。我们攻克了多个难题,才最终铸就了PixelUI的核心竞争力。
亮点一:思想链(CoT)驱动的内在思考机制——让AI决策“透明化”
为了让Agent的决策过程不再是“黑盒”,我们引入了思想链(Chain of Thought, CoT)机制,并强制Agent在每一步决策前,都必须生成一段结构化的Thought文本进行自我审视和分析。
Thought示例:
1. 状态校验: 页面加载是否正常?
2. Bug梳理: 目前已发现哪些Bug?
3. 操作评估: 上一步点击操作是否精确命中目标?有无偏移?
4. 环境分析: 页面是否有弹窗阻断流程?是否需要滚动才能看到元素?
5. 目标规划: 当前测试目标是什么?下一步或几步应该做什么?
这对你意味着:
-
超高稳定性: 通过注入“检查弹窗”、“判断滚动”等思考环节,Agent能主动发现并规避许多传统脚本无法处理的异常,端到端测试成功率因此大幅提升。
-
极速定位问题: 当测试失败时,你得到的不再是一个冰冷的“error”,而是一份详细的“思想日志”,清晰追溯AI的每一次决策,让问题定位速度提升数倍。
亮点二:动态快照技术:精准捕捉“稍纵即逝”的页面元素
测试中常遇到点击后弹出、持续1-2秒即消失的Toast提示(如“操作成功”)。传统截图极易错过。我们的动态快照算法解决了此问题。
工作原理简述:
-
操作前,记录当前DOM结构作为基准。
-
操作后,在几秒内高频连续捕捉截图+DOM。
-
通过对比DOM的结构差异,找到变化最大的那一帧(即Toast出现的那一刻)。
-
将最关键的这一帧截图和DOM作为最终结果返回给“大脑”分析。
这对你意味着:
-
告别“漏检”: 你再也不会错过那些转瞬即逝的成功或失败提示,确保了对动态交互的100%覆盖。
亮点三:混合元素定位方案:视觉与文本的“双剑合璧”
如何让Agent准确地在页面上定位到要操作的元素,是整个方案的基石。业界主流方案各有优劣:
-
纯视觉方案:纯视觉方案对模型有较高的要求,例如需要识别指定元素在页面中的坐标等,同时,对于很多当前窗口不可见的元素等等,大大加大的模型分析的复杂度。
-
纯结构方案:基于DOM结构生成的可访问性树,文本信息丰富,定位精准。但它无法识别图片、图标等非文本内容(例如,校验图片里是不是一只猫)。
我们认为,单靠任何一种方案都有其局限性。因此,我们独创了一种混合元素定位方案:
-
双重输出:我们让Agent同时基于截图(视觉信息)推理目标元素的坐标(coordinate),并基于DOM 结构树(文本信息)推理出元素的编号 ID。
-
智能决策:我们设计了一套置信度评估算法。该算法会根据当前操作的上下文,动态判断在当前场景下,坐标和DOM 结构树中的元素编号哪个更可靠。
-
取长补短:通过这种方式,我们吸取了两种方案的优点,既利用了DOM 结构树对文本元素的精确定位能力,又弥补了其在视觉信息上的短板,大幅提升了元素定位的准确性和泛化能力。
亮点四:智能批量执行与状态校验:兼顾效率与稳定性
传统Agent“思考一次,执行一步”效率太低。我们实现了“思考一次,执行多步”,但如何保证中途页面跳转后,后续步骤依然有效?
为了解决这个问题,我们引入了执行过程中的页面快照校验机制:
-
前置快照:批量步骤执行前,记录所有相关元素的详细快照(位置、属性等)。
-
步间校验:在执行批量操作的每一个原子步骤后,我们都重新获取一份当前元素的快照,并与之前记录的该元素信息进行比对。
-
熔断机制:检查该元素在两个快照中的标签、属性、可见性、位置等是否发生变化。一旦发现元素位置、属性等发生显著变化(如页面跳转导致元素消失),立即熔断当前的批量执行。
-
重新规划:中断后,系统会将当前最新的截图和DOM 结构树再次提交给Agent,让它基于全新的页面状态,重新推理后续的测试步骤。
这对你意味着:
-
成本更低,速度更快: 通过批量调用大幅减少LLM交互次数,显著降低了执行成本和时间。
-
稳如泰山: 智能校验机制确保了每一步都建立在正确的页面状态上,绝不会因为页面变化而“走错路”,在提升效率的同时保证了稳定性。
四、现在,轮到你了!
通过将精巧的Prompt工程与一系列创新的底层技术相结合,我们成功构建了一个能将测试人员从繁重重复劳动中解放出来的AI Agent。它不仅实现了自动执行,更通过其“思考”能力和多重校验机制,保证了自动化测试前所未有的准确性和鲁棒性。
理论终须实践。我们已经将这套强大的AI Agent能力完全封装进了 PixelUI - AI驱动的前端测试智能化平台,并已开放公开体验。
现在就访问 https://uitester.baidu.com/
亲手体验AI如何将您繁琐的测试用例,转化为一次次精准、高效的自动化执行。
告别“点点点”,从这里开始!
更多推荐
所有评论(0)