通用技术 关于分布式 USB 控制安卓手机自动化的经验

火山草 · 2021年11月11日 · 最后由 jhan 回复于 2021年11月25日 · 3446 次阅读

项目背景:
现在公司是做网络设备产品的,如路由器,AP,网关等等。公司的给测试的条件也比较好,买了上百台安卓真机做测试。为了测试这些网络设备无线的性能,一般前置条件就是让这些真机 wifi 连接到网络设备的 SSID。然后跑业务,游戏,视频等等,观察网络设备的稳定性和性能。

难点:
目前采用了 uiautomater2 来做安卓真机的自动化控制,但是据我了解手机自动化,要么通过 wifi,要么通过 USB。由于我们本身就是测试 wifi 的,导致只能选择 USB。(如果使用 wifi 控制,在切换 ssid 过程中,控制就断开了。)USB 的话,每台 PC 理论上能带到 127 个,实际自己实验了不同主板的 PC 每台只能带个 40-90 台不等,超过了就无法识别了。所以只能加 PC,做分布式控制。

目前的解决方案:
目前落地了的方案是 python+uiautomater2+redis 的消息订阅 + 多线程来解决不同手机连接在不同 pc 上的问题。

不知道有没有类似项目的,一起分享下有没有其他的解决方案

共收到 5 条回复 时间 点赞

有种简单的 adb nodaemon server -a 本身就支持局域网共享设备,挂载设备 pc 用这个模式启动
远端执行 -H 就可执行连接局域网 PC IP 地址上的设备
adb -H 10.1.1.xxx devices
STF 和 Appium 都有类似方法连接局域网设备

YueChen 回复



是这样用吗 这个 ip 那边 adb devices 有设备

火山草 回复

忘记开 stf 了

http://testerhome.com/topics/8049 @codeskyblue 找到这位大佬的文章了 adbkit 符合我的需求

@ 火山草 我们也在做类似的,但是我们现在的 PC 机识别的手机有点少,哪个主板能带手机的数量比较多呀?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册