背景介绍

众所周知,安卓单台设备的 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 安卓集群管理 安装运行及自动化的实践


↙↙↙阅读原文可查看相关链接,并与作者交流