Multi Agent 驱动的 UI 自动化测试新范式
如果无法正常显示,请先停止浏览器的去广告插件。
1. Multi Agent 驱动的 UI 自动化测试新范式
繁珏
2. 目录
• 测试痛点
• AI新机遇
• 建设目标
• 解决方案
• 总结展望
2
3. 测试痛点
学习门槛高
编写成本高
维护成本高
控件识别难
• 需要掌握复杂的自 • 编写测试用例需要 • 页面布局或功能更 • 面对动态加载或复
动化工具和编程语
言,如Appium、
Playwright等 深入了解业务流程 新后,自动化测试 和应用结构 脚本需频繁修改 杂的UI组件时,识
别和操作控件具有
• 自动化测试工具环
境搭建复杂
• 自动化用例开发周 • 需要投入大量时间
期长,无法快速覆
盖新功能 和人力资源进行脚
本维护
挑战性
• 易出现识别错误导
致测试结果不准确
3
4. AI 新机遇 – 人机协同
人类与AI协同的三种模式包括人工为主模式、副驾驶模式 (Copilot)和 AI 自主模式 ,相较于前两种模式, AI 自主模式更为高效,或将
成为未来人机协同的主要模式。
人工为主模式
AI
人类
其中某几个任务AI提供信息或建议 人类结束工作
AI完成初稿,人工修改调整 人类结束工作
AI全权代理:任务拆解,工具选择等 AI 自主结束工作
人设定目标
Copilot模式
人类
AI
人设定目标
AI 自主模式
人类
AI
人设定目标
4
5. AI 新机遇 – Agent
Agent Multi Agent协同
能够感知环境、做出决策并采取行动以实现特定目标的计算系统。 处理更复杂的任务,中心化结构举例
用户请求 用户请求
API调动
目标拆解
思维链
任务
规划
工具
使用
Agent
代码执行
管理者 Agent
工具库
自我思考
……
记忆
Agent
短记忆 长期记忆
当前对话上下文 持久化存储的知识
Agent
Agent
模拟人类工作流程:可以模拟人类的分工协作方式,将各种任
务的标准操作流程定义为AI Agent的工作规范。
5
6. AI 新机遇 – Multi Agent React 设计模式举例
React 解释案例:点外卖
问题:我想点一份午餐外卖,请帮我找到附近评分高且送达时间在30分钟内的餐厅选择。
思考 1:需要搜索附近餐厅并筛选高评分、快速配送的选项。
思考 智能体
操作 1:搜索[附近餐厅外卖]
观察 1:找到五家餐厅:"味之源中餐厅"、"迅捷披萨"、"健康沙拉吧"、"墨西哥卷饼屋"和"日式料理店"。
推理拆解任务,确定
解决问题所需的信息
思考 2:需查看评分和配送时间。
和步骤;
操作 2:查询[餐厅评分和送达时间]
观察 2:味之源(4.6星):35-45分钟,健康沙拉吧(4.7星):20-30分钟,其他评分较低
思考 3:只有健康沙拉吧满足条件,查看菜单和评价。
操作 3:搜索[健康沙拉吧菜单和评价]
观察 3:提供多种沙拉,午餐套餐58元含主沙拉、小食和饮料。最近评价多为5星,称赞食材新鲜、送达准时。
观察 智能体 行动 智能体
观察行动结果是否有 采取相应的措施或执
效,是否接近了问题
的答案。 行特定的任务,调用
回答:推荐"健康沙拉吧",评分4.7/5星,送达时间20-30分钟。他们提供58元午餐套餐,顾客评价积极,特别肯
定食材新鲜度和送达时效。
工具执行具体操作;
React 优势和局限性分析
一、优势:①灵活性:基于实时观察动态调整决策路径,适应意外情况;②知识获取:通过工具迭代获取外部信
循环流程,直到任务结束或达到最大循环次数
息,解决复杂问题;③透明度:思考步骤记录推理过程,便于调试
二、局限性:①循环风险:可能陷入无效步骤循环,难以自主跳出;②资源消耗:多轮LLM调用增加延迟和成本;
6
7. AI 新机遇 – Multi Agent Plan-and-Execute 设计模式举例
Plan-and-Execute 案例:点外卖
问题:我想点一份午餐外卖,请帮我找到附近评分高且送达时间在30分钟内的餐厅选择。
一、Plan阶段,智能体首先制定完整计划:
①搜索附近提供外卖服务的餐厅;②筛选出评分4.5星以上的高评价餐厅;③查看符合条件餐厅的菜单和用户
评价;④根据综合信息选出最佳推荐
二、Execute阶段:
①搜索附近餐厅;②筛选高评分餐厅;③检查送达时间;④查看菜单和评价
三、 Replan阶段(检测到计划无法继续执行,智能体重新规划):
①放宽条件,考虑评分4.0以上且送达时间在35分钟内的餐厅 ②重新筛选并评估可行选项
图:LangGraph 官方
四、继续执行:放宽条件搜索,最终推荐完成任务
1、Plan:做规划,把复杂问题拆成一系列的子任务。
2、Execute:按照子任务列表,逐个执行。 Plan-and-Execute 优势和局限性分析
3、Replan:重新制定计划,一方面会输出反馈给用户,另一方面会更 一、优势:①明确区分规划与执行阶段,先全局规划再逐步执行,提供清晰路线图指导全过程,避免陷入局部最
新任务清单; 优;②Replan机制允许在计划遇阻时动态调整,提高任务完成率 ;③减少模型调用: 相比每步思考的方法,可能降
低总体模型调用次数
二、局限性:①初始计划质量决定整体执行效果,计划欠佳将影响全局;②频繁的计划失败与重规划会增加延迟和
资源消耗;③何时需要完全重规划、何时只需小调整的界限不明确
7
8. AI 新机遇 – UI自动化测试新范式
通过 Multi Agent 解决UI自动化测试问题,让“一句话自然语言描述,自动生成UI自动化测试用例”变成可能。新范式思路如下:
Loop到任务完成
测试任务分析
智能体 环境感知
上下文获取 指令预测
智能体 指令执行
智能体 观察
反思
理解用例生成诉求 页面、控件信息
历史步骤上下文信息 自然语言替代传统代码指令 操作手机、WEB 观察执行结果
经验更新(将有用的过程信息沉淀为长期记忆)
任务结束后,对过程信息进行综合分析和总结。这些总结将被有效地沉淀下来,以供后续任务使用。
8
9. 建设目标
基于 Multi Agent + 自动化测试基建,构建 UI 自动化测试新范式,
实现“ 一句自然语言描述,即可自动生成、执行并断言 UI 自动化测试用例 ”。
9
10. 解决方案 – Multi Agent 协同
是
知识库
修正用例
按步骤
执行固定用例
自愈
智能体
执行失败
是否命中已沉淀
的自动化用例
任务分析
智能体
在美团外卖APP
买个猪脚饭
Loop到任务完成
否
初始化
环境感知
上下文获取
预测下一步
智能体 指令执行
智能体 评价反思
智能体
点击搜索框 打开APP 验证执行结果
一句话任务
1. 首先打开美团外卖APP
2. 搜索猪脚饭 - 点击首页顶部的搜索框 - 输
分配设备
DOM获取
最终任务
入"猪脚饭"关键词 - 点击搜索按钮
3. 选择合适的商家 - 查看商家列表
4. 选择猪脚饭 - 在菜品列表中找到猪脚饭 -
点击"+"号将其加入购物车
5. 提交订单 - 点击页面底部 “去结算”
6. 完成支付 - 选择支付方式(如微信支付、
支付宝等)
应用安装
OCR获取
图像获取
历史步骤
UI关键信息描述
action:
[
{
"name": "MobileTap",
"arguments": {
"x": 286,
"y": 235,
}
}
]
打开网页
点击
文字输入
执行失败
自愈
智能体
…...
经验更新(将有用的过程信息沉淀为长期记忆知识库)
任务结束后,对过程信息进行综合分析和总结。这些总结将被有效地沉淀下来,以供后续任务使用。
10
11. 解决方案 – 环境感知(记录上下文信息)
环境感知:像一个记录员一样,自动采集环境交互信息(包括页面状态、UI组件结构、操作历史等),结构化上下文,实现多智能体系统中的信息共享与协同决策,
提升智能体对环境理解的能力和任务的执行效率。
环境感知举例:感知每一步的页面组件结构信息 环境感知举例:感知执行过程
相比传统纯DOM树、OCR解决方案,多模态大模型的 自动记录UI自动化的指令执行过程、验证结果等
加持下能更精准的识别元素
{
OCR
DOM树(数据清洗)
多模态
]
}
"context": [
{
"index": 1,
"action": "打开外卖APP",
"test_result": "成功"
},
{
"index": 2,
"action": "点击搜索框",
"test_result": "成功"
},
{
"index": 3,
"action": "输入搜索关键词'披萨'",
"test_result": "成功"
},
{
"index": 4,
"action": "从搜索结果中选择餐厅'意式经典披萨'",
"test_result": "成功"
},
{
"index": 5,
"action": "将'夏威夷披萨'加入购物车",
"test_result": "成功"
},
……
Agen
t
作为参数传递给大模型,大模型利用上下
文信息后可以更加准确的决策
被环境感知记录到的过程信息举例
在美团外卖APP上点一个汉堡
11
12. 解决方案 – 预测下一步
大模型Prompt
你是一名经验丰富的UI自动化测试工程师,为了完成最终目标,请帮我预测出下一步动作,必须返回JSON,不要包含多余信息,避免JSON格式错误。 当任务
完成时,停止任务。
环境感知(上下文获取)
{
}
页面信息
"context": [
{
"index": 1,
"action": "打开外卖APP",
"test_result": "成功"
},
{
"index": 2,
"action": "点击搜索框",
"test_result": "成功"
},
{
"index": 3,
"action": "输入搜索关键词'披萨'",
"test_result": "成功"
},
{
"index": 4,
"action": "从搜索结果中选择'意式经典披萨'",
"test_result": "成功"
}
]
执行过程
指令知识库
#### 1. 输入文本
如果预测结果为输入文本,输入的指令如下:
```json
{
"actions": [
{
"instructionName": "MobileSendKeys",
"arguments": {
"selector": "<xpath_input>",
"keyword": "<inputText>",
}
}
],
}
```
- 其中x、y为输入框位置,selector为输入框的
xpath路径,参考格式为://*[@resource-
id='com.ss.android.ugc.aweme:id/et_search_
kw' and @class='android.widget.EditText'
and @focusable='true' and
@enabled='true'],keyword为要输入的文本。
预测出下一步指令(单步或多步):点击 搜索框
[
{
]
}
[
{
"name": "MobileTap",
"arguments": {
"x": 286,
"y": 235,
}
},
{
"name": "MobileTap",
"arguments": {
"x": 286,
"y": 235,
}
"name": "MobileTap",
"arguments": {
"x": 286,
"y": 235,
}
}
]
单步
多步
最终任务:买一个汉堡
12
13. 解决方案 – 评价反思 + 自愈
自愈:执行失败的步骤进行自愈,减少了用例维护成本,传统的UI自动化测试脚本在应用程序的UI发生变化时通常需要手动更新。AI自愈能力能够自动识别和适应
这些变化,从而减少了脚本维护的工作量和成本。
自愈 Prompt
作为UI自动化测试自愈Agent,你的核心职责是确保测试脚本在面对UI变化时保持稳定运行。
## 主要职责
1. **元素定位恢复**
- 当定位器(XPath, CSS选择器等)失效时,通过多种替代策略重新识别元素
- 利用相邻元素、文本内容、相对位置等上下文信息进行智能匹配
2. **测试脚本修复**:自动更新测试脚本中的定位器,调整等待时间和交互逻辑以适应新的UI响应特性
…….
请帮我预测出下一步动作,必须返回JSON,不要包含多余信息,避免JSON格式错误。 当任务完成时,停止任务。
执行用例
点击 搜索按钮
评价反思 智能体
由于需求变更,搜索按钮
的控件变更了,从文字变
自愈 智能体
当前页面信息
[
{
成了icon,导致点击操作
失败。
要完成的目标
},
{
历史执行步骤
指令知识库
"name": "MobileTap",
"arguments": {
"x": 286,
"y": 235,
}
执行新指令
点击 搜索按钮
"name": "MobileTap",
"arguments": {
"x": 286,
"y": 235,
}
}
]
13
14. 解决方案 – 经验更新(过程信息沉淀长期记忆)
为什么要进行经验更新并有效沉淀执行过程?
1. 提升效率:通过优化执行流程,将处理时间从原来的10秒以上缩短至2秒以内,大幅提高工作效率。
2. 节约成本:减少对模型的依赖,从而有效降低成本,实现资源的高效利用。
知识沉淀更新过程(长期记忆)
获取
过程信息
{
"context": [
{
"index": 1,
"action": "打开外卖APP",
"test_result": "成功"
},
{
"index": 2,
"action": "点击搜索框",
"test_result": "成功"
},
……
]
}
信息有效
性分析
知识
沉淀
1、分析每一步骤结果 1、转化为可执行
2、排除执行错误的步骤 的自动化脚本
3、进行信息重组 2、持久化存储
任务执行命中长期记忆
UI 自动化测试脚本
帮我买一个外卖
分析知识库(命中长期记忆)
Automan
任务分析
执行
自动化脚本
自愈
结束
14
15. 解决方案 – 整体架构
手机 UI 自动化测试智能应用
智能应用
任务调度
多智能体
浏览器 UI 自动化测试智能应用
人工任务
任务分析智能体
定时任务
环境初始化
页面识别智能体
接口调用
环境感知智能体
预测下一步智能体
浏览器指令
手机指令
基础工具
设备占用 点击元素 滑动 打开网页 点击元素 滑动
输入文本 安装应用 卸载应用 输入文本 等待网页加载 刷新网页
截屏 获取DOM树 …… 截屏 获取DOM树 ……
大模型
长期记忆
设备模拟器
大模型
基础服务
指令执行引擎
手机
浏览器
用例库
业务库
15
16. 总结展望 – 能力总结
Automan(自然语言) 传统 UI 自动化测试(自动化脚本) 手工测试 (测试人员 )
用例新建成本 低(自我学习、预测分析、智能生成、自愈) 高(工具、环境、脚本/模型、录制开发) 高(需手动创建用例)
用例维护成本 低(自我学习、预测分析、智能生成、自愈) 高(UI变化需要人工修改脚本、重新录制) 高(需手动更新用例)
较快 快 慢
高 高 一般(易受人为因素影响)
广泛,可并行执行 广泛,可并行执行 有限,耗时
重复性任务 高效,精确 高效,精确 枯燥,效率低,易出错
探索性测试 强(自我学习、预测分析、智能生成、自愈) 较弱 强项,依赖直觉和经验
低 (执行成本低) 低 (执行成本低) 高 (重复执行人力成本高)
特征
速度
一致性
覆盖广度
长期运行成本
16
17. 总结展望 – 未来展望
自动构建业务知识库
业务知识、测试用例、
UI组件信息、页面信息
全自主自动化测试
用例智能修复
根据PRD、历史用例库自动 自动检测业务知识变化,自
生成准确且完备的UI自动化 动修复测试用例
测试用例
测试大模型训练
基于业务知识进行训练,
提升用例生成速度和准确
度
17
18.
19. 招聘:测试开发岗位
邮箱:caimanling@meituan.com
更多技术干货
欢迎关注“美团技术团队”