众所周知,安卓单台设备的 UI 自动化测试已经比较完善了,有数不清的自动化框架或者工具。但是介绍多设备管理的内容并不多,当手里的手机多了之后,要做自动化测试平台,这块的东西又不得不碰。我是一位比较喜欢实践的人,和同事在一起开发过简单的多设备管理系统,也用过开源的,后来又自己开发过。前前后后大概经历了 4 个不同的版本。
+--------------+
| |
| atx-server |
| |
+--+-------+--++
| | |
| | +--------------------------+
+---+ +-------+ |
| | |
| | |
+-----------v----+ +------v---------+ +---v------------+
| Android | | Android | | Android |
| | | | | |
| +---------+ | +---------+ | +---------+
| |atx-agent| | |atx-agent| | |atx-agent|
| | | | | | | | |
+------+---------+ +------+---------+ +------+---------+
atx-agent
运行在手机的内部,为手机增加了远程控制,自动化的功能。atx-server
最重要的功能,是将atx-agent
汇总到一个网页上展示,并提供一个 API 可以获取所有设备的列表。
点击设备最右侧的那个眼睛图标,就可以进入远程控制界面。功能比较简单,但是基本功能够用了。
目前只试过 80 台设备,更多的设备应该也不成问题,不知道上限是多少,手机多的可以帮我测试下。
关于UI 自动化, uiautomator2这个项目只需要知道设备的 ip 就可以运行自动化了,包括安装运行,推送文件,各种功能都有。在这个项目之上外加一个 Jenkins 之类的运行脚本的服务,稍加处理就是一个自动化测试平台了。美滋滋
辛辛苦苦终于写完了,希望看文章的人多思考思考,笔者非常期待思维的碰撞,欢迎留言。
项目地址: https://github.com/openatx/atx-server
附上 cynic 的实践文章:atx 安卓集群管理 安装运行及自动化的实践