1、“无”定位的AI辅助WebUI自动化实践胡雷庭胡雷庭字节跳动 数据平台-质量保障团队测试开发专家,毕业后曾就职于趋势科技、阿里巴巴等公司,从事安全测试、自动化测试平台搭建、业务质量保障体系建设等方面工作,2020年加入字节跳动后主要负责数据产品私有化测试管理平台搭建、自动化工具体系与成熟度建设,效率工具开发等工作。目录01CONTENTS0203传统WebUI自动化的局限无定位WebUI自动化实现方案LLM辅助WebUI自动化生成方案04更丰富的校验和拦截能力05应用效果与展望01传统WebUI自动化的局限传统WebUI自动化的局限 业务逻辑割裂:先定位元素后操作的编写模式,定位代码充斥在业务
2、逻辑中,业务逻辑不连贯,可读性差 门槛高不稳定:学习门槛高、复杂和相似度高的元素处理难,易受页面变化影响,不稳定,维护成本高,即便用PageObject模式,也需用户主动了解有哪些PO对象,封装了哪些方法,并主动调用它们 编写时机滞后:一般用在回归场景,因为涉及DOM细节,所以页面上线前无法编写如何跳出繁琐的DOM细节,以较低成本,编写出不惧页面变动,稳定性高的自动化测试呢?02无定位WebUI自动化实现方案无定位WebUI自动化实现方案要解决的主要问题字段名元素定位字段名关联控件区域定位区域内控件按序识别字段名元素定位u常见页面字段u常见字段名DOM特征举例labelplaceholder普
3、通文本按优先级查找字段名元素字段名元素定位优先顺序:Label、FullText、Placeholder、PartialText、Id/Name字段名关联控件区域定位字段名和关联控件区域的几种典型DOM关系关联控件区域中有1N个控件字段名关联控件区域识别递归查找字段名元素关联的控件区域字段名元素可操作?后继兄弟:=0:追溯父元素=1:尺寸检测?向上追溯1:取父元素区域内控件按序识别identifier:控件标识,定义控件匹配规则tag:元素的 HTML 标签class:元素的 class 属性type:元素的 type 属性style:元素的 style 属性role:元素的 role 属性p
4、riority:优先级,自定义控件默认为 1,HTML 原生控件默认为 0call_me:和控件交互的统一方法click_rect:激活控件用于输入或展示弹出层控件接口定义区域内控件按序识别控件示例:可用不同identifier、priority多次实例化,灵活应对多种场景区域内控件按序识别主要挑战控件识别顺序控件去重控件信息字典:1.按控件类型归类2.记录相对顺序演示:字段控件识别与操作Video1聚焦业务逻辑门槛低、运行稳定自动化编写左移优点:03LLM辅助WebUI自动化生成方案演示:在线实时生成&调试Video2全程无定位自然语言编写在线边生成边执行低门槛:LLM辅助WebUI自动化生
5、成挑战生成初体验上下文限制无法放入所有关键字模型幻觉,未使用正确关键字,自创关键字格式不固定,首尾有多余代码和解释问题:LLM辅助WebUI自动化生成挑战主要挑战低开销:减少token消耗,避免达到上下文限制,也降低响应时长准确性:理解测试描述,也调用了正确的方法正确性:语法格式正确,可运行精细化Prompt设计按操作维度的 prompt 细化分类1.短小独立的提示词功能测试方便 2.能根据实际场景,按需生成最短提示词精细化Prompt设计Prompt 示例人设+任务+工具列表+使用示例+编写规则+代码输出格式+任务内容+输出语言精细化Prompt设计关键字和用法示例 中英文描述清晰一致:不给
6、LLM带来理解上的歧义 常用和低频关键字分离:避免不常用关键字频繁被喂给模型造成浪费 易错场景和语法举例:让LLM更好的理解关键字用法和语法格式 功能独立,兼容性好:接受LLM可能用不符合预期的入参类型调用关键字Prompt路由组装 输入格式化:如叉号、x号、class包含、curl命令等常用说法预处理成方便理解的格式并去除敏感信息 动作拆解:基于模式匹配,如 found_any_line(content,r如|检查|判断|查看|当,r存|有|是否|出现|展示,是否)为真时要加载 is_existing_prompt 模块 Prompt组装合并经验总结回