UI自动化:uiautomator2环境搭建

时间:2024-03-02 15:35:11

概述

  uiautomator2 是用来做安卓自动化测试的python库,主要是对于第三方app 进行测试,获取屏幕上任意app 的任意一控件属性,就可以对其进行任意操作,缺点是不支持ios 自动化测试。这里主要介绍的是怎么搭建uiautomator2 环境的。

  ios 自动化测试的话可以参考这个  https://github.com/openatx/facebook-wda

 

一、前提准备:准备安卓设备

1、首先需要一部安卓设备(手机/pad),打开开发者选项,设备连接到电脑上,执行adb devices 的话可以看到连接上的设备。确认能识别到设备ip的话,第一步就成功了。

 

二、安装uiautomator2 库

1.通过pip 安装 :

pip3 install -U uiautomator2

这里加了-U 参数,是用来升级第三方库的。有这个情况下安装的就会是最新版本的uiautomator2 了。

因为我装的是pip3,所以用的是pip3 ,装pip 的记得把命令行切换成pip install -u uiautomator2。

2.通过git下载安装

git clone https://github.com/openatx/uiautomator2
pip install -e uiautomator2

三、安装weditor

因为uiautomator 是独占的资源,所以运行atx 的时候,uiautomatorviewer 不能用,因此需要安装weditor UI 查看器

pip3 install -U weditor

安装之后,可以在命令行运行 weditor --help  确认是不是成功了,出现以下提示说明ok了。

 

四、运行weditor 

1、运行方式

1.1对于windows 系统,可以通过 weditor --shortcut  在桌面创建快捷方式,点击快捷方式跳转浏览器页面。

 1.2通过命令行,在命令行直接输入weditor 可以自动打开浏览器。

五、安装本库所需要的到的全部设备端程序 uiautomator-server 、atx-agent、openstf/minicap、openstf/minitouch

python -m uiautomator2 init 

运行命令行之后会在安卓设备上安装atx 程序,是需要手动点击进行安装操作的;我这里因为已经安装好了,所以运行的时候显示的是uiautomator2 和atx-agent 的版本。

六、接第四步跳转浏览器界面之后,界面会显示和电脑连接的安卓端设备界面(最后在进行这一步操作)。

1.在顶栏把设备型号选择为Android

2. 在红框的位置输入你连接的安卓设备的ip (最开始 adb devices 获取到的设备信息)

3.点击connect 进行连接

 

七、连接之后,就是写代码部分了。先贴上简单版的代码。供参考。

---------我贴的这个是要实现打开apk 然后退出到桌面,循环100次---------------

import uiautomator2 as u2
import time
d = u2.connect(\'KWQNU19719101548\')  #连接设备
for i in range(100):
    time.sleep(3)  #等待3s
    d.app_start(\'com.commonrail.mft.decodertest\') #传递包名作为参数打开apk
    time.sleep(6) 
    d.press("home") #返回到桌面