如何利用AI进行UI自动化测试的失败排查?

作者:自动化测试   发布时间:2026-07-03

一、AI 排查前置:统一采集全维度失败上下文(AI 判断的数据源)

脚本失败时,自动收集全套信息传给 AI,缺一不可:

执行基础信息:用例 ID、执行步骤、浏览器 / 设备、运行环境、执行时间

报错原始日志:selenium/playwright/appium 堆栈、超时、元素找不到、断言失败、网络异常

页面资产:失败时刻全屏截图、DOM 源码、页面 XHR / 请求响应、Cookie

基线对照素材:该页面正常基线截图、标准 DOM、预期文案 / 样式

前置操作链路:前几步执行记录、弹窗、滚动、等待操作记录

历史数据:该用例过往失败记录、前端近期代码提交记录

二、AI 分层排查核心能力与具体方法

(一)LLM 大模型:日志结构化解析 + 初分类失败类型

1. 自动清洗、翻译、归类杂乱报错

原始日志是机器英文堆栈,AI 自动完成:

去除无用冗余日志,提取关键报错关键词;

翻译成业务易懂中文,区分 4 大类失败:

1)定位类失败:NoSuchElement、元素找不到、选择器失效

2)断言类失败:文本不符、按钮缺失、数值错误、视觉不一致

3)环境 / 网络类:接口 500、超时、页面空白、跨域、验证码弹窗

4)业务 BUG 类:流程跳转错误、数据计算错误、状态流转异常

2. 链路推理:还原完整执行上下文

AI 结合步骤 + 日志推理:

执行到 “点击提交按钮” 时报元素不存在,前置操作弹窗未关闭遮挡按钮,导致定位失败。

实操 Prompt 模板(可直接使用)

plaintext

你是UI自动化故障分析专家,基于以下执行日志、操作步骤,完成:

1. 提炼1句话核心失败现象;

2. 判定失败类型(定位失效/断言不匹配/环境问题/前端业务缺陷);

3. 列出3条最可能根因,按概率从高到低排序;

4. 给出对应排查验证操作;

5. 区分:是脚本需修改,还是前端代码BUG,或是环境偶发问题。

日志:{{日志内容}}

操作步骤:{{执行步骤}}

(二)VLM 视觉大模型:截图智能比对,定位 UI 展示类失败

针对视觉断言失败、页面错乱、文案错误、按钮消失场景,纯日志无法判断,靠识图 AI:

基线图 vs 失败截图智能 Diff

传统像素对比易受时间、动态数据干扰;VLM 自动过滤动态变量(时间、订单号、随机弹窗),精准标出真实差异:

按钮缺失、文字错位、颜色错误、弹窗异常、表单未渲染;

OCR 提取页面全部文字,对比预期文案,直接指出 “提示语与需求不符”。

识别遮挡、弹窗、遮罩层

AI 识图判断:页面存在升级弹窗、loading 遮罩、广告浮层,导致按钮无法点击。

识别页面加载异常

空白页、404、加载转圈无响应,判定前端渲染崩溃 / 接口请求失败。

(三)DOM 语义对比 AI:解决元素定位失败(最高频故障)

90% UI 自动化报错是找不到元素,AI 自动对比「正常 DOM」和「失败 DOM」:

对比页面节点变化:class、id、层级、文字、属性改动;

语义化识别元素:不依赖固定选择器,通过按钮文字、标签、业务含义匹配;

自动输出修复方案:

旧 xpath 失效,生成新可用 css/xpath;

建议改用文字语义定位 / 视觉定位替代动态属性;

区分两种场景:

前端改版 DOM 结构变了 → 脚本需要自愈更新定位器;

接口无返回数据,元素未渲染 → 前端 BUG。

(四)接口链路 AI 分析:定位后端数据导致的 UI 失败

UI 展示异常很多根源是接口返回错误,AI 自动关联页面 XHR 请求:

扫描失败步骤前后所有接口状态码、返回体;

对比正常流程接口返回数据,找出差异字段;

推理逻辑:列表接口返回空数组→页面无数据展示→自动化断言失败;

自动标记接口报错,同步对应后端接口与开发负责人。

(五)历史数据 RAG 知识库:快速区分偶发 / 稳定 BUG

构建项目 RAG 知识库存入:历史失败记录、页面迭代记录、高频偶发问题、已知环境缺陷;

AI 排查时自动检索相似历史案例:

相同用例近 10 次执行多次失败:判定稳定前端缺陷,直接提缺陷;

仅本次失败,其余正常、伴随网络超时:判定环境偶发波动,建议重跑;

近期前端提交修改过该页面组件:高概率是代码变更引入问题。

三、AI 完整自动化排查流程(流水线自动执行,无需人工介入)

脚本执行失败 → 自动采集截图、DOM、日志、接口、执行链路;

第一步:LLM 解析日志,初步分类失败大类;

分支 1:定位失败 → AI 对比新旧 DOM,生成新定位器,尝试自动自愈修复;

分支 2:断言 / 视觉失败 → VLM 对比基线截图,圈出 UI 差异,提取错误文案;

分支 3:页面空白 / 无数据 → AI 分析接口请求,校验返回数据正确性;

RAG 匹配历史故障,判断是偶发环境问题还是程序稳定缺陷;

AI 输出标准化故障报告:

核心故障描述、根因分级、验证方案、修复建议;

区分三类结论:前端 BUG / 自动化脚本待优化 / 环境偶发无需改代码;

自动推送结果:

稳定缺陷:自动生成缺陷单,附截图、日志、AI 分析结论;

脚本自愈可修复:自动更新 PO / 定位器,下次执行生效;

环境偶发:自动触发重跑机制,通知测试人员仅做观察。

四、不同失败场景下 AI 具体排查手段

场景 1:元素找不到 NoSuchElement(最常见)

AI 动作:

解析 DOM 对比,查看元素是否存在、是否被遮罩、是否异步未渲染;

VLM 识图判断页面有无目标按钮 / 输入框;

检索历史:是否近期前端修改页面结构;

输出方案:

元素存在但选择器失效:给出新 xpath/css,自动自愈脚本;

元素不存在:接口无数据 / 前端未渲染,判定开发 BUG;

弹窗遮挡:自动增加关闭弹窗步骤,优化脚本。

场景 2:视觉断言不通过(页面样式、文案错乱)

AI 动作:

VLM 对比基线图,框选差异区域,OCR 识别文字差异;

过滤动态时间、随机数字等无关像素差异;

输出:明确指出 “提交按钮文字由‘确认’变为‘提交’,与需求不符”,附带对比截图。

场景 3:步骤执行超时,页面一直加载

AI 动作:

抓取页面所有接口,查看是否存在接口 504、长时间 pending;

识图判断页面是否无限 loading;

区分:接口性能问题(后端)/ 前端渲染阻塞 / 网络环境差。

场景 4:业务流程断言失败(数据不对、状态错误)

AI 动作:

解析接口返回数据,对比预期业务规则;

检索产品需求知识库,校验数据计算逻辑;

输出:订单金额计算错误、审批状态流转异常,判定业务缺陷。

场景 5:间歇性偶发失败(不稳定用例)

AI 动作:

调取该用例历史执行记录,统计失败频次;

分析失败时网络、加载时长、弹窗出现时机;

给出优化方案:增加智能等待、处理随机弹窗、调整执行时机。

五、落地增效配套能力

AI 自动自愈(排查 + 修复一体化)

定位类故障排查完成后,AI 生成有效定位器,自动更新自动化 PO 文件,无需人工改代码,下次回归直接生效,大幅降低维护工作量。

故障自动聚类

批量执行后 AI 把同类失败聚合,比如 10 条用例均因同一组件改版失效,统一批量修复,不用逐条处理。

自然语言可视化报告

摒弃晦涩日志,AI 输出大白话报告,产品、开发无需看懂自动化堆栈也能理解问题;同时自动关联对应前端 commit 记录,精准推送责任人。

沉淀故障优化库

每次 AI 排查后的根因、修复方案自动存入 RAG,同类故障下次排查速度更快,持续优化 AI 判断准确率。

六、落地分阶段实施路线

阶段 1:轻量化快速落地(无框架改造)

失败后导出日志 + 截图,投喂大模型人工触发 AI 分析;

用于缩短人工看日志、比对截图的时间;

收益:单条故障排查时间减少 60%。

阶段 2:流水线集成自动化排查(CI/CD 自动执行)

脚本失败自动采集全量上下文,调用 LLM+VLM 自动分析;

自动区分 BUG / 脚本问题 / 环境问题,自动提缺陷;

收益:大部分简单故障无需人工介入,仅复杂故障人工复核。

阶段 3:AI 自愈全链路闭环

排查→自动修复定位器 / 补充等待逻辑→自动重跑验证→更新自动化代码库;

收益:UI 自动化维护人力下降 70% 以上。


本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-60725088-8054),我们将立即处理,马上删除。



沪ICP备07036474号-4 |

沪公网安备 31010702003220号

2015-2026 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.