1. 前言
群控,相信大部分人都不会陌生!印象里是一台电脑控制多台设备完成一系列的操作,更多的人喜欢把它和 Hui 产绑定在一起!
事实上,群控在自动化测试中也被广泛使用! 接下来的几篇文章,我将带大家聊聊 企业 级自动化中,群控 正确的使用姿势!
本篇先从基础篇开始,聊聊使用 「 Python + adb 」 命令如何编写一套群控脚本
2. 准备
在本机安装 Android 开发环境,保证 adb 被添加到环境变量
将准备好的多台设备,使用数据线( 或者通过 Hub )连接到电脑上
通过 adb devices 命令查看已经连接的所有设备
# 下面显示连接了3台设备
xag:Test xingag$ adb devices
List of devices attached
822QEDTL225T7 device
ca2b3455 device
DE45d9323SE96 device
3. 实战
自动化群控以闲鱼 App 的一次关键字搜索为例,步骤包含:打开应用、点击到搜索界面、输入内容、点击搜索按钮
下面通过 7 步来完成这一操作
1、获 取目标应用的包名及初始化 Activity
获取方式有很多种,主流方式包含:adb 命令、解析 APK、第三方 APK、 无障碍服务
这里推荐使用 adb 命令这种方式
# 获取当前运行应用的包名及初始Activity
adb shell dumpsys activity | grep -i run
打开闲鱼 App,在命令终端输入上面的命令,终端会将包名及 Activity 名称显示出来
2、获取 所有在线的设备
通过 adb devices 命令,通过输出内容,进行一次过滤,得到所有连接到 PC 端的设备
# 所有设备ID
devices = []
def get_online_devices(self):
"""
获取所有在线的设备
:return:
"""
global devices
try:
for device_serias_name in exec_cmd("adb devices"):
# 过滤掉第一条数据及不在线的设备
if "device" in device_serias_name:
devices.append(device_serias_name.split("\t")[0])
devices = devices[1:]
except Exception as e:
print(e)
# 连上的所有设备及数量
return devices
3、群控打 开目标应用
遍历设备列表,使用 adb -s 设备ID shell am start -W 命令分别打开目标应用