目录
一、简介
二、支持平台及语言
三、工作原理
四、安装
一、简介
uiautomator2是一个python库,用于Android的UI自动化测试,其底层基于Google uiautomator,Google提供的uiautomator库可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作。
GitHub地址:GitHub - openatx/uiautomator2: Android Uiautomator2 Python Wrapper
二、支持平台及语言
python-uiautomator2封装了谷歌自带的uiautomator2测试框架,提供便利的python接口。他允许测试人员直接在PC上编写Python的测试代码,操作手机应用,完成自动化,大大提高了自动化代码编写的效率。
三、工作原理
如图所示,python-uiautomator2主要分为两个部分,python客户端,移动设备。
- python端:运行脚本,并向移动设备发送HTTP请求
- 移动设备:移动设备上运行了封装了uiautomator2的HTTP服务,解析收到的请求,并转化成uiautomator2的代码。
整个过程:
- 在移动设备上安装atx-agent(守护进程),随后atx-agent启动uiautomator2服务(默认7912端口)进行监听。
- 在PC上编写测试脚本并执行(相当于发送HTTP请求到移动设备的server端)。
- 移动设备通过WIFI或USB接收到PC上发来的HTTP请求,执行制定的操作。
四、安装
(1)在大多数情况下,使用pip进行安装是最简单也是最直接的方法。你只需要在命令行中执行以下命令:
pip3 install uiautomator2
(2)执行完毕后,uiautomator2就会被安装到你的Python环境中。你可以通过运行下列命令来检查安装是否成功。
python -m uiautomator2 init
执行“python -m uiautomator2 init”命令,会自动往手机上安装一堆东西:
- app-uiautomator.apk
- app-uiautomator-test.apk
- atx-agent
- minicap
- minitouch
当PC或Linux服务器连接了多台adb device的情况下,“python -m uiautomator2 init”默认初始化的是所有设备,若指定设备初始化,则需使用“--serial”参数:
python -m uiautomator2 init --serial $SERIAL
# $SERIAL为手机序列号,可通过adb devices查看
(3)然后,新建一个py文件,通过运行代码来查看环境是否配置成功。
注意:在运行这段代码之前,需要确保 Android 设备已经通过 USB 连接到计算机,并且设备已经开启了 USB 调试模式。
# 使用uiautomator2进行设备连接
import uiautomator2 as u2d = u2.connect() # connect to device
print(d.info)
这行代码调用 uiautomator2 对象的 connect() 方法来尝试连接到一台 Android 设备,并将连接后的设备对象赋值给变量 driver 。connect() 方法默认会尝试连接通过 USB 连接到计算机的第一台 Android 设备。如果需要连接指定序列号的设备,可以在 connect 方法中传入设备序列号。
设备对象 driver 的 info 属性,该属性包含了设备的各种信息,如屏幕分辨率、电池电量、系统版本等。
运行代码,这时看到类似下面的输出,就可以正式开始用我们这个库了。
OK,安装到此就完成了。