Android自动化测试平台,录制回放与LLM自主操作双引擎架构解析
本文深入剖析一款创新的Android自动化测试平台,该平台融合了录制回放与多模态大语言模型(LLM)自主操作两大核心引擎。通过构建包含Flutter客户端、FastAPI后端及Python本地Agen...
在移动应用快速迭代的今天,Android自动化测试面临着诸多挑战。传统的测试工具如Appium和uiautomator2往往需要复杂的环境配置,且录制的脚本在页面结构变化时极易失效,无法满足探索式测试的需求。针对这些问题,一个全新的Android自动化测试平台应运而生,其核心创新在于采用了"录制回放+LLM自主操作"的双引擎架构。
该平台的整体架构分为四个主要部分:Flutter Windows客户端、FastAPI后端、本地Agent(Python + Windows)以及Android真机执行层。其中,Flutter客户端作为测试人员的日常入口,负责任务创建、实时进度预览及scrcpy投屏等功能;FastAPI后端则承担资产管理与任务调度的核心功能,采用SQLite WAL实现轻量级数据存储;本地Agent运行在测试机上,负责所有设备操作相关的底层逻辑,包括getevent事件采集、uiautomator dump解析及动作执行等。
在动作执行方面,平台巧妙利用了DroidRun开源框架,通过其Portal无障碍服务实现对控件的精准操作。当DroidRun SDK可用且设备已安装Portal时,系统自动选择无障碍通道执行动作;否则将降级使用ADB直连方式,确保了执行的可靠性。这种双引擎设计不仅提升了动作执行的稳定性,也为后续的LLM自主操作奠定了基础。
值得注意的是,平台的录制链路完全独立于Portal,直接通过纯ADB通道采集真人手指的触摸事件,并结合uiautomator dump解析控件信息,生成带有多个候选定位的脚本。这种设计既保证了录制过程的准确性,又避免了对第三方应用的依赖,使得生成的脚本在不同页面结构下仍能保持较高的回放成功率。

此外,平台还特别设计了LLM自主探索功能,允许测试人员通过自然语言描述测试目标,由多模态大语言模型根据屏幕内容自主完成操作。这一功能突破了传统脚本编写在探索式测试中的局限性,显著提升了测试效率和覆盖率。
整个平台的技术栈涵盖了前端开发、后端服务、本地代理及真机执行等多个层面,充分体现了现代软件工程的模块化设计理念。通过这种分层架构,平台不仅实现了各组件之间的解耦,也为未来的功能扩展和技术升级预留了空间。