Android自动化测试实践:uiautomator2 核心功能与应用指南
uiautomator2
是一个用于Android应用的自动化测试Python库,支持多设备并行测试操作。它提供了丰富的API来模拟用户对App的各种操作,如安装、卸载、启动、停止以及清除应用数据等。此外,uiautomator2
支持多种设备连接方式,包括USB、模拟器默认连接以及通过WiFi(TCP/IP)连接。
核心功能:
- 设备连接与操作:支持USB和WiFi(TCP/IP)方式连接设备,提供了查看设备列表的命令和示例代码。
- 应用管理:能够安装和卸载应用,启动、停止以及获取正在运行的应用列表。
- 节点选择器:提供多种节点选择器,如基于文本、类名、描述、元素状态、包名、资源ID等来定位UI元素。
- 节点操作:支持获取匹配节点列表、节点存在性判断、节点计数,以及查找父级节点、子节点和同级元素。
- 事件操作:模拟用户交互,如点击、输入文本、滑动屏幕等。
- 坐标定位:获取元素坐标并执行坐标点击。
- 提示信息获取:能够获取系统提示语。
适用场景:
- 自动化测试:为Android应用提供自动化测试解决方案,提高测试效率。
- 应用开发:辅助开发者在开发过程中快速定位和测试UI元素。
- 教育与研究:作为学习和研究Android自动化测试工具的资源。
使用注意:
- 确保设备开启了开发者选项和USB调试。
- 对于WiFi连接,需要先通过USB连接设备并设置TCP/IP端口,然后通过IP地址和端口号进行连接。
附加工具:
weditor
:一个节点查看工具,帮助用户更方便地进行节点选择和测试。
APP的操作
url = "apk下载地址"
d.app_install(url)
d.app_uninstall("包名")
d.app_start("包名")
d.app_stop("包名")
d.app_clear("包名")
d.app_list_running() #获取正在运行的列表
#获取正在运行的包名
print(d.app_current())
连接设备
查看设备列表
-
adb devices
-
要使用 uiautomator2 查看设备列表,可以使用以下命令: python -m uiautomator2 init
USB模式
注意:开发者选项,打开USB调试
import uiautomator2 as u2
# 注意网络代理
u2.wait_timeout = 20 # 设置等待时间为20秒
d = u2.connect_usb()
使用设备号连接
device = u2