背景:
测试工作中一些针对安卓设备的压测脚本,调用了uiautomator2 库进行UI元素识别和操作。在执行脚本时,首先会对需要连接的安卓设备安装atx-agent,但是公司内网无法直接访问互联网,无法直接通过 python -m uiautomator2 init 命令通过网络给设备安装atx-agent。
可以通过使用一台可以联网的电脑,给安卓设备安装atx-agent,然后在电脑C盘用户目录下 会生成一个.uiautomator2的文件夹,把这个文件夹拷贝出来,复制到内网电脑C盘用户目录下,就可以实现内网离线环境给连接安卓设备安装atx-agent,就可以使用脚本调用 uiautomator2执行安卓UI自动化测试了。
.uiautomator2的作用:
这是基于uiautomator2 执行UI自动化测试时,需要在待测设备上安装ATX应用的安装包文件缓存数据,有这个文件夹在,内网电脑无法访问外网也能给DUT安装ATX软件
- 将压缩文件解压成文件夹.uiautomator2
- 打开电脑用户数据路径,window系统一般都在C盘 示例 C:\Users\zn-yt
- 将解压的.uiautomator2 文件夹整体拷贝到 用户数据路径下, 示例 C:\Users\zn-yt.uiautomator2
调用库
import uiautomator2 as u2
连接设备
dut = u2.connect()
定义应用名称
app_name = "com.xxx.settings"
启动应用
dut.app_start(app_name)
定义元素
set_tv_sys = dut(resourceId ="com.xxx.settings:id/tv_system")
点击元素
set_tv_sys.click()
定义元素
set_sys_root = dut(resourceId = "com.xxx.settings:id/root_system")
在元素上滑动
set_sys_root.swipe("up",steps=50)
定义元素
sys_version_code = dut(resourceId = "com.xxx.settings:id/version_system")
读取元素文本
sys_version_code_txt = sys_version_code.get_text()