本议题聚焦: 如何利用大模型(特别是其多模态能力)构建一套新型的UI自动化测试框架,实现自然语言驱动的、跨平台的UI自动化,解决传统方案的碎片化、高成本、脆弱性问题。
1. 核心痛点:UI自动化测试的“碎片化”困境
1.1 平台/技术栈割裂: Android, iOS, 鸿蒙原生、Flutter, React Native, H5, 小程序... 每种平台和技术栈都需要特定的自动化框架(Appium, Airtest, UIAutomator, Puppeteer等)和适配代码,测试脚本无法复用,维护成本指数级增长。缺乏一种真正“一次编写,到处运行”的UI自动化解决方案,难以应对当前混合应用、跨平台框架和小程序生态的复杂性。
1.2 开发与维护成本高昂: 测试工程师需要精通多种框架和编程语言(Java, Python, JavaScript等),学习曲线陡峭。脚本严重依赖XPath, ID, Accessibility ID等属性定位元素,UI结构、属性值的微小变化(如资源ID动态生成、布局调整)极易导致脚本执行失败,稳定性差。UI元素频繁变更导致脚本大规模失效,需要投入大量人力进行脚本维护和调试。
2. 思考方向:拥抱AI,回归“自然”
2.1 大模型多模态能力:大型语言模型(LLM)理解自然语言指令的能力,结合计算机视觉(CV)模型理解屏幕内容(文本、图像、控件)的能力,为解决上述痛点提供了全新可能。
2.2 “所想即所得”的自动化: 能否让测试人员像描述给真人测试员一样,用自然语言(如“点击登录按钮”,“在搜索框输入'手机'并搜索”,“验证购物车里有1件商品”)直接驱动自动化执行。
2.3 跨平台统一入口:基于视觉和语言理解,理论上可以屏蔽底层平台差异(Android/iOS/HarmonyOS)和前端技术栈差异(原生/Flutter/H5/小程序),提供一个统一的自动化交互界面。
2.4 降低门槛,提升效率:让不懂编程的业务测试人员也能快速创建和执行自动化用例,释放专业测试人员的生产力,专注于更复杂的场景设计和质量分析。
内容大纲
1. 引言:传统UI自动化的困局与AI带来的曙光
1.1 快速回顾现有主流UI自动化技术及其痛点(碎片化、高成本、脆弱性、高门槛)。
引出大模型(LLM + CV)在理解和执行自然语言指令、理解屏幕内容方面的潜力。
提出核心愿景:自然语言 -> 自动化执行。
2. 整体架构设计:构建AI驱动的自动化引擎
2.1 核心组件:
视觉感知层 (CV Module): 基于YOLOv5等目标检测模型实时识别屏幕截图中的控件(按钮、输入框、文本标签等)及其位置、类型、文本内容。生成屏幕的“结构化描述”(控件列表、位置、属性)。
自然语言理解层 (LLM Module): 接收测试人员的自然语言指令或录制的用例描述。理解指令意图(操作类型:点击、输入、滑动、验证?)和目标对象(哪个控件?)。
意图-控件匹配与坐标生成层 (Alignment & Planning): 将LLM理解的意图(操作+目标描述)与CV层识别的控件列表进行匹配。将匹配到的控件位置转换为设备屏幕上的可执行坐标(或控件引用)。
执行引擎层 (Execution Engine): 调用底层自动化框架(如ADB/SCRCPY/WDA, 或自研轻量级驱动)执行坐标点击、输入文本、滑动等操作。处理断言逻辑。
缓存与优化层 (Cache & Optimizer): 关键组件,提升效率和稳定性。
2.2 核心挑战与“踩坑”经验:
挑战1:执行效率低,token消耗大:视觉模型接口请求慢(10-20s/次),输入包括截图编码,导致token消耗比较多。解法:增加缓存机制,将执行过的步骤和图片缓存,通过图片相似度匹配历史操作步骤,命中则直接复用结果,提升执行效率,同时降低token的消耗。
挑战2:测试用例的描述影响测试用例的执行,例如在测试用例执行步骤:“点击书架”,当图片中有多个“书架”空间的时候,就有可能执行失败。解法:在描述测试步骤的时候,给出空间的大概位置,比如“点击左下角的书架按钮”,“点击第一个视频封面等”
挑战3:部分空间无法定位,一些APP特有的图标,而且没有文字说明的图片,大模型可能无法准确识别。解法:在提示词中加入这些特定信息,比如“向上向外的箭头表示分享按钮”
挑战4:由于大模型的缓存机制,导致测试用例在不同分辨率的设备上执行,返回相同的坐标,比如测试用例在A设备上执行成功之后,在B设备上执行的时候,大模型会直接返回在A设备上识别的结果,导致在B设备上执行失败。解法:将坐标识别替换成空间序号识别,在图片上标注出所有的控件,以及控件的序号,大模型在识别成功之后,直接返回控件的序号,这样就避免了由于大模型的缓存机制导致执行失败的问题。
挑战5:缓存假命中问题。当用例执行时,根据整体图片相似度(如95%)判断缓存命中。但若两张图整体相似度高,而局部关键操作区域不同(如按钮图标变化),导致使用错误的缓存坐标,操作失败。解法:在整体图片相似度判断的基础上,增加对关键区域的局部相似度校验。具体方法:根据上一次执行该步骤时的操作坐标,在缓存图片和当前图片的相同区域(以坐标为中心,扩展一定区域)分别截取子图,计算子图相似度。只有整体相似度和局部区域相似度都满足阈值,才认为缓存命中。否则,重新调用CV模型识别。
3. 应用AI录制回放的自动化实践
3.1 项目选型介绍:
埋点测试介绍:介绍埋点的定义与价值,埋点测试的核心特点,pgc播放业务核心埋点介绍,埋点测试过程介绍,埋点测试的困境
埋点自动化方案选型调研:传统UI自动化方案痛点,基于埋点自动化特点,拥抱新技术,思考采用ocr或者AI的方案进行测试,通过对比ocr和AI的特点,介绍AI录制回放的优势,
AI录制回放与埋点的结合:介绍PGC播放场景的操作特性,用户操作高度标准化,核心行为为高频基础操作,播控识别操控等。选型AI录制回放,解决元素定位脆弱性和跨端可用性问题
3.2 埋点自动化框架设计:
埋点自动化框架采用分层设计,分为测试数据层,基础服务层,用例层,数据断言层和结果层。基于AI驱动的自动化引擎,进行测试用例录制作为埋点的用例步骤,通过DOM语义理解引擎解析自然语言测试步骤,定位目标元素并模拟交互行为。
核心设计:
用例组织设计:埋点自动化用例分为数据前置准备(mock操作,预期结果准备),执行埋点操作的步骤,埋点的断言。使用了BDD模式,通过自然语言书写自动化用例,映射到steps来调用代码。Given对应是前置埋点数据准备,通过mock服务固化初始条件,不同的测试用例对应不同的mock规则,统一使用mock服务管理。When对应是埋点的测试用例步骤的实现,测试步骤为AI执行用例的步骤,可重复使用用例步骤。Then对应是埋点上报的断言实现。
用例执行设计:基于AI驱动的自动化引擎做用例录制和用例执行组件,执行埋点操作步骤。解决核心问题:
1 )元素根据实际当前界面的实际情况智能识别, 不会因为元素的微小变动导致定位失败
2) 跨端只需使用一套用例
断言模块设计:平台提供断言模块,识别元素在页面展示,例如进入页面和退出页面成功等操作,框架设计基于埋点上报特性,可自定义断言模块,增加数据校验模块。
3.3 核心挑战与“踩坑”经验:
挑战一:跨平台操作模块AI录制回放可以解决跨平台录制问题,但无法解决不同平台初始化代理的操作步骤不同,所以不同平台的驱动需要统一管理。利用跨平台模块,根据环境变量初始化,对驱动进行统一管理。调用时自动调用对应平台的底层操作,操控使用同一套测试用例,只在测试步骤进行区分。
挑战二:AI执行用例失败的重试机制基于埋点执行失败报告的截图以及日志,进行反复尝试,寻找最优解,如何描述用例使AI录制和执行成功的探索,加重试机制。通过日志和报告分析,得出失败的原因,重新优化case描述,重新执行,不断提高通过率。
3.4 实践结果展示
支持端的情况、支持场景、准确率和通过率等实践结果
4. 未来展望
4.1 技术能力提升:更精准、更稳定、更智能
更精准:识别控件更贴合业务语义:
提升通用控件识别准确率,支持多语言、多样式 UI。针对业务特有控件(如播放页定制按钮、图标型功能键等),通过建立控件知识库或训练小型专用模型,实现高精度识别与标注。融合图像、文字、布局等多模态信息,提升语义级控件识别能力。
更稳定:跨设备自动适配,减少环境依赖:
引入空间结构匹配机制,构建控件的相对位置模型,适配不同设备界面布局。
支持控件语义级识别与引用,不依赖像素级坐标,避免因分辨率、DPI 差异导
致的误操作。实现一次录制、多端回放,增强用例迁移能力,显著降低维护成本。
更智能:操作更可靠,系统具备自我校正能力
多个相似控件(如多个“播放”按钮)共存时,系统可结合上下文、位置信息、历史操作等,智能推理正确目标。增强模型对错误执行的感知与修正能力,例如通过断言失败自动重试、提示词重构、切换备选控件等方式提升稳定性。逐步构建“反馈-优化-再执行”的闭环,让系统在执行中持续学习和进化。
4.2 测试用例自动生成:从“人写”到“AI写”
基于探索式执行生成用例:AI在应用中模拟用户操作,自动点击、滑动、跳转等,通过视觉感知与语义理解自主探索页面逻辑,记录每一步操作路径。将探索过程中形成的“操作轨迹”结构化为标准测试用例,包含:步骤描述、控件引用、预期结果、断言逻辑等。
基于操作日志回溯生成用例:结合用户真实操作行为(如点击轨迹、页面跳转、输入内容等)自动生成标准化的测试用例。可广泛应用于冒烟测试、回归测试等。
自然语言生成测试用例描述:测试人员只需用自然语言描述业务流程,如“打开播放页并点击第一个视频”,系统即可自动生成对应的结构化测试用例,包括控件匹配、坐标规划、断言逻辑等。
4.3 自动化测试覆盖更多场景
全链路业务流程自动化:不仅限于前端 UI 操作,也将逐步融合后端接口测试、埋点校验、数据一致性校验,实现完整链路的端到端验证。