议题背景:
本议题聚焦:在多端融合背景下,UI自动化方案面临的局限性和对应解法?如何避免模型生成不规范的用例?AI是否能够自检后运行用例,并针对失败的用例开展自愈?整体流程跑通后如何开展运维稳定性调优?本议题将分享Skill驱动下UI自动化核心流程提效的实践过程中,所遇到的具体问题和坑点,最终将用例生成、自动执行、自愈能力集于一体,并分享投产到业务总包回归任务中实际效果。
核心痛点:
1、自动化用例编写门槛高:传统的UI自动化用例编写比较依赖测试人员对业务场景、POM类封装、代码规范等方面的经验积累,从总包用例的改写、元素定位的抓取、测试数据的准备、等待及异常处理、结果断言到产出可投产自动化用例,整个流程长,新人上手难度大;
2、跨端场景存在重复劳动:当业务的前端拥有Android, iOS, 鸿蒙原生、React Native, H5等多种平台及技术形态时,每种技术栈都需要不同的自动化框架(Uiautomator2 + WebDriverAgent + Hypium等)和适配代码,用例规范难以统一,测试脚本无法复用。
3、后期运维成本居高不下: UI自动化实际运维过程中,严重依赖XPath, Resource ID, Text甚至是坐标点等属性来进行定位元素,UI元素频繁变更会导致用例大规模失效,失败后的用例改写成本又依赖测试人员对业务场景和多端特性的熟悉程度,往往需要投入大量人力进行用例维护和稳定性调试。
思考的方向:
1、写得更快(生成):降低UI自动化的用例编写门槛,提升效率,让不熟悉编程的测试人员也能快速生成用例;
2、跑得更稳(执行):在稳定性调优方向,引入图片降级兜底、多端Mock打通、规范等待及异常处理,来减少重复返工;
3、修得更好(自愈):基于语义匹配开展Xpath变更后的修复,并更新POM类的中定位代码;用例中的部分测试数据失效后可以自主替换;视觉基线更新后,识别图片变化情况,进行更新;自动分析运行时报错原因,并给出修复建议;
内容大纲:
1. 背景与痛点:
1.1 传统UI自动化建设的瓶颈(编写门槛 / 定位漂移 / 跨端重复 / 人工排障)
1.2 核心思路设计:人在环路理念 & skill如何串联UI自动化的核心流程
2. 整体框架与流程拆解:
2.1 Agent整体框架——四层设计生成体系
「多端总入口 + 业务路由 + 规则约束 + 工具调用」分层结构设计
2.2 流程闭环:自然语言 / TAPD 链接 → 业务路由 → 用例生成 → 自检后执行 → 执行报告(AI负责解析、生成、增强和自愈,人负责核心决策)
2.3 具体流程拆解及Skill串联闭环:将整个流程拆解成各司其职的 skill 和工具
① 传统流程 vs Skill驱动流程的对比,引出各个环节对应的专职skill
② 用例解析skill ——根据case需求链接自动抓用例详情,负责处理前置准备、具体步骤,断言设计和基准图管理等;
③ 用例生成skill ——可以根据样例case、业务规则、Xpath库等references,实现智能化的步骤拆解 + 元素定位 + 多维断言;批量生成规范可执行的多端用例,并自检用例是否合规;
④ 用例自愈skill ——沉淀高频的用例失败原因,智能化给出失败根因分析,并可在人决策后进行自愈尝试,如自动更新测试数据、更新基准图、推断正确定位方式、调整弹窗顺序等;
⑤ 其他scripts工具 ——多端用例管理、mock工具跨端共享、区域排除截图等;
3. 工程化实践与挑战:
3.1 分渲染范式讲局限:为什么一套解法搞不定
① 原生 View/XML 静态解析可达约80%;坑:View[N] 位置索引是运行时结构、跨模块 resource-id 重复、动态 content-desc 解析不到、布局复用致用途模糊、RecyclerView/ViewStub 运行时才 inflate
② Compose 无 resource-id,只能写深层链式 View[N] xpath,收银台整页几乎无 XML 布局、覆盖率极低
③ H5 按 Chrome WebView a11y tree 映射推导约70%;坑点:空 div/span 是否进 a11y tree 取决于 CSS → View[N] 整体偏移、第三方组件内部 DOM 不透明
3.2 半自动 XPath生成:脚本生成初稿(原生约80% / H5 约70%)+ 真机校准反哺 + 规律固化回脚本;Xpath自动生成存在天花板,静态源码推不出运行时的动态结构,但实践发现可以把人工成本从 100% 压到约20–30%;
3.3 分级解法:从「能自动化到什么程度」出发,选对武器
① 能规则化兜底:多文案兼容 xpath(续费/开通/好礼)、双索引 click_condition(View[6]/View[5] 存在才点)、坐标换算(1080×2400 比例)、弹窗顺序 click_condition(有则点无则跳)等;
② 靠数据构造:Mock bmitmproxy 打通 HTTP+gRPC三端、自动启停;构造接口超时兜底、极端数据、实验分组等常规难覆盖场景
1) gRPC 难点:RecordIO 反序列化 + gRPC URL→bapis proto 映射 + gzip 解压 + json_format 重序列化 + 重算 content-length
2) 降级边界:gRPC 无降级方案(直接报错提示),HTTP/JSON 可降级到本地 addon 文件消费
③ 只能视觉化:图片比对,元素定位不可靠时(如纯 Compose、动态内容)退而求其次,用视觉比对断言页面状态
1)要做的工作:基准图治理(一图对多 case、按页面状态语义命名、AI 绝不自动命名强制反问)· 阈值分场景(默认 0.75 / 收银台 0.6 / mock 0.9)· 多基准图 image_mulmatch 取两图 max(实验分组)· 区域裁剪 screenshot_exclude + SSIM 区域比对
2)坑点:运营换素材→图片必挂→必须配套文字断言兜底·、阈值难调(太松漏报、太紧误报)、动态内容/分辨率差异、比对失败设为「非致命上报」才能一轮收齐全部失败
④只能人工:涉及审核态、支付相关链路等约约30% 场景无法开展 UI 自动化;
3.4 失败了不占人力:AI 自愈闭环
①底层支撑:图片比对非致命上报 + RUN_CASE_IDS 单 case 入口 → 一次运行收齐全部失败,而非首个失败即中断
②闭环流程:运行 → 收集全部失败 → 一次性归类 → 按策略修复 → 重试验证,支持单 case / 批量双入口
③标准化修复:针对 xpath 失效、图片阈值波动、弹窗顺序、坐标偏移等高频失败沉淀策略,AI 按策略优先修复而非乱改
4. 总结与展望
4.1 实际效果总结:
①三端均已投产:通过率持续提升并稳定在 95%+;
②提效情况:
1)用例编写工时显著下降,产出周期缩短,多端生成成本降低;
4.2 自愈价值验证:Android播放页横屏试看条业务改版,导致 7 条失败全部自愈;iOS 因 xpath/基准图变化失败 6 条自愈 5 条;节省后期运维人力70%以上;
4.3 可迁移的方法论:业务规则和知识沉淀、分级解法(规则化/mock/视觉化/人工)、多业务复用;
5. 未来规划:
① 进一步理解不规则的纯自然语言,增强步骤推理能力、自动生成多维断言,推断基准图;
② 规范测试专用的定位元素生成规则,提供skill与研发协作共建;
③ 每个步骤进行截图,并记录执行操作,动态化展示执行过程;
④ vibe coding能力与远程调度平台一体化(自然语言→生成→调度→执行→报告),实现一站式vibe到result,赋能业务;
听众收益:
1. Skill 驱动UI自动化核心流程提效的设计结构,把 AI 用例生成从「幻觉频发」收敛为「规则可控」的具体工程手段(路由约束、用例规范、强制反问)。
2. 稳定性调优的兜底策略、定位自生成方案的探索经验、跨端自动化背景下一次投入,多端投产、提高用例稳定的全局解法及局限性。
3. UI元素改版后,如何降低人工逐个排查失效用例的成本,AI批量分析根因(检测变更、定位修复、更新基准)、人工只做关键决策、实现可持续运营。
4. 实践过程中的场景坑点及常见解法,并分享实际投产中的三端真实通过率曲线与运维人力变化情况;完整提效思路与量化收益情况,可直接迁移到其他UI自动化团队;