大模型时代下App自动化测试平台新方案
基于 agent-device 构建一个兼容 Android、iOS 和鸿蒙(HarmonyOS)的移动端 AI 自动化测试平台,是一个非常具有前瞻性的架构选择。agent-device 本身已经解决了最底层的跨平台设备控制与 UI 语义解析(基于无障碍树和 @e 引用),因此,你的平台设计核心应聚焦于上层的 AI Agent 调度、任务管理、上下文记忆以及测试资产的沉淀。
以下是为你设计的详细架构方案:
一、 核心设计理念
1,AI Native 而非 Script Native
摒弃传统的“用例-步骤-断言”脚本模式,采用“目标-探索-验证”的 Agent 行为模式。
2,三层解耦架构
感知层(agent-device负责)、决策层(LLM Agent 负责)、执行与平台层(任务调度与资产管理)独立演进。
3,闭环反馈机制
测试不仅是“跑用例”,更是“找 Bug”。平台需要收集截图、日志、性能数据作为证据,反哺给 Agent 进行自我修复。
二、 平台整体架构设计

1. 基础设施与设备管理层 (Device Layer)
- 设备池管理:通过 agent-device open--platform 建立设备会话(Session)。
- 鸿蒙专项适配:针对鸿蒙系统,利用 HDC 驱动和 ArkUI Hierarchy 进行 UI 快照。需特别注意处理鸿蒙特有的 uitest uiRecord 卡死问题,平台需增加预检机制,发现 stuck 进程时自动触发 reboot。
- 状态守护:后台运行 agent-device daemon,通过 IPC 与平台通信,保持设备长连接。
2. AI Agent 核心引擎层 (Agent Engine)
这是平台的“大脑”,负责将自然语言测试需求转化为具体操作:
- 感知模块 (Perception)
调用 agent-device snapshot -i 获取无障碍树,将其转换为结构化文本(如 @e1 [button] "Sign In"),大幅降低 LLM 的 Token 消耗。
- 决策模块 (Decision)
接入多模态大模型(如 Qwen、GLM-4V)。采用 ReAct (Reasoning + Acting) 循环:
- Thought
分析当前 UI 状态与测试目标的差距。
- Action
输出标准化指令(如 tap @e3、swipe up、type "user@email.com")。
- Observation
获取执行后的新 UI 状态。
- Thought
- 记忆与知识库 (Memory)
借鉴 AppAgent 机制,Agent 在探索过程中自动提取界面元素的特征、位置和功能,生成“UI 知识库”。下次遇到相似场景时,Agent 可直接检索知识库,提升执行效率。
3. 平台业务服务层 (Platform Service)
- 任务调度中心
支持创建测试任务(如“验证购物车完整链路”),支持并发分配空闲设备。
- 弹窗与异常拦截器
鸿蒙的弹窗是普通 ArkUI 组件,平台需内置关键词匹配规则(如识别“确定/取消/允许/拒绝”),在 Agent 决策前自动处理系统级干扰。
- 断言与验证引擎
支持自然语言断言(如 aiAssert "购物车商品数量应为1"),由 LLM 结合当前 UI 状态进行语义判断。
4. 资产与 CI/CD 集成层 (Asset & DevOps)
- 测试回放 (Replay)
将 Agent 探索成功的交互路径录制成 .ad 脚本。在 CI 环境中,这些脚本可作为 E2E 测试用例稳定回放,解决 AI 测试不稳定的痛点。
- 证据链归档
自动打包测试过程中的截图、录屏、HTTP 抓包、App 日志和 Crash 上下文,生成可视化的 AI 测试报告。
三、 核心工作流 (Workflow)

1.输入:用户在平台输入测试目标(如:“使用测试账号登录,搜索无线耳机并加入购物车”)。
2.启动:平台从设备池分配一台鸿蒙真机,执行 agent-device open 启动 App。
3.循环执行:
- 平台获取当前 UI 快照(snapshot -i)。
- 将快照和测试目标发送给 LLM。
- LLM 返回下一步操作(如 tap @e12)。
- 平台调用 agent-device press @e12 执行操作。
- 平台检查是否发生弹窗,若发生则自动处理。
4.验证与结束:目标达成或超时后,Agent 生成总结报告。
5.沉淀:若测试成功,平台将本次操作序列保存为 .ad 回归脚本。
四、 关键难点与应对策略
1.AI 幻觉与误操作
- 策略:引入置信度机制。对于关键操作(如支付、删除),要求 LLM 给出高置信度,或增加人工确认(Human-in-the-loop)节点。
2.鸿蒙兼容性
- 策略:由于鸿蒙没有原生的 Alert API,需在平台层封装一个“鸿蒙弹窗识别器”,通过解析 ArkUI 节点树中的 dialog 或 alert 类型,自动提取按钮坐标并执行点击。
3.Token 成本控制
- 策略:坚决摒弃纯视觉截图方案,强制使用 agent-device 的无障碍树(Accessibility Snapshot)作为 AI 的输入。仅在 Debug 或复杂视觉断言时才调用截图。
4.测试稳定性
- 策略:不要期望 AI 每次探索的路径完全一致。将 AI 探索作为“生成测试用例”的手段,最终通过 .ad 脚本回放来保证 CI 流水线的绝对稳定。
五、 落地实施建议
-
Phase 1 (MVP):实现基础的 CLI 封装,打通 LLM 与 agent-device 的 ReAct 循环,支持单设备、单平台的自然语言探索测试。
-
Phase 2 (平台化):开发 Web 控制台,增加设备池管理、弹窗自动处理、测试报告生成,并完善鸿蒙系统的专项兼容。
-
Phase 3 (工程化):实现 .ad 脚本的录制与回放,接入 Jenkins/GitLab CI,建立 UI 知识库,实现跨端的一致性测试。
这个方案充分利用了 agent-device 在底层设备控制和语义解析上的优势,将复杂的跨平台适配和 UI 定位问题下沉,让上层的 AI Agent 能够专注于业务逻辑的理解和测试策略的规划。
更多推荐



所有评论(0)