美文网首页
uiautomator2环境搭建(基于python)

uiautomator2环境搭建(基于python)

作者: 迷迭香_d0e9 | 来源:发表于2018-11-22 15:58 被阅读0次

    uiautomator2

    uiautomator2是一个可以使用Python对Android设备进行UI自动化的库。其底层基于Google uiautomator,Google提供的uiautomator库可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点:1. 测试脚本只能使用Java语言 2. 测试脚本必须每次被上传到设备上运行。 我们希望测试能够用一个更脚本化的语言,例如Python编写,同时可以每次所见即所得地修改测试、运行测试。这里要非常感谢 Xiaocong He (@xiaocong),他将这个想法实现了出来(见xiaocong/uiautomator),原理是在手机上运行了一个http服务器,将uiautomator中的功能开放出来,然后再将这些http接口,封装成Python库。

    我们的uiautomator2项目是对xiaocong/uiautomator的增强,主要有以下部分:

    1. 设备和开发机可以脱离数据线,通过WiFi互联(基于atx-agent

    2. 集成了openstf/minicap加快截图速度

    3. 集成了openstf/minitouch达到精确实时控制设备

    4. 修复了xiaocong/uiautomator经常性退出的问题

    5. 代码进行了重构和精简,方便维护

    工作原理

    如图所示,python-uiautomator2主要分为两个部分,python客户端,移动设备

    python端:运行脚本,并向移动设备发送HTTP请求

    移动设备 :移动设备上运行了封装了uiautomator2的HTTP服务,解析收到的请求,并转化成uiautomator2的代码。

    整个过程

    1. 在移动设备上安装atx-agent(守护进程), 随后atx-agent启动uiautomator2服务(默认7912端口)进行监听

    2. 在PC上编写测试脚本并执行(相当于发送HTTP请求到移动设备的server端)

    3. 移动设备通过WIFI或USB接收到PC上发来的HTTP请求,执行制定的操作

    环境搭建

    安装Python

    如命令行可以执行python,则跳过此步骤

    在python官网下载python,并配置环境变量,可点击查看详细教程

    安装adb

    如命令行可以执行adb devices,则跳过此步骤

    从谷歌官网下载Android Platform Tools , 解压,并加包含adb.exe的目录加入到系统的PATH中。

    安装python-uiautomator2

    命令行窗口输入:

    pip install -U --pre uiautomator2

    经过短暂的等待,就安装好了。部分情况可以因为中国互联网防火墙的原因,安装不了,这是可以试试用国内的pypi镜像

    pip install -U --pre uiautomator2 -i https://pypi.doubanio.com/simple

    此外,还需要pillow来处理截图数据

    命令行窗口输入:

    pip install pillow

    设备安装atx-agent(将相关联的守护进程部署到设备上)

    电脑连接上一个手机或多个手机, 确保adb已经添加到环境变量中,执行下面的命令会自动安装本库所需要的设备端程序:uiautomator-server 、atx-agent、openstf/minicap、openstf/minitouch首先将设备插入到手机上,如果提示信任开发者选项就点击确认。

    命令行窗口输入:

    adb devices

    python -m uiautomator2 init

    安装过程中会联网下载组件,安装提示success即可。

    以上环境搭建基本完成

    确定环境是否搭建成功

    接下来看一段Python脚本,运行成功时手机会弹出一句:Hello world, 显示时间为3秒

    应用及操作

    调用uiautomator2的过程

    1. 配置手机设备参数,设置具体操作的是哪一台手机

    2. 抓取手机上应用的控件,制定对应的控件来进行操作

    3. 对抓取到的控件进行操作,比如点击、填写参数等。

    配置手机设备参数

    python-uiautomator2连接手机的方式有两种,一种是通过WIFI,另外一种是通过USB。两种方法各有优缺点。WIFI最便利的地方要数可以不用连接数据线,USB则可以用在PC和手机网络不在一个网段用不了的情况。

    1. 使用WIFI连接

    手机获取到手机的IP,并确保电脑可以PING通手机。手机的IP可以在设置-WIFI设置里面获取到。比如手机的IP是192.168.0.100,连接设备的代码为

    import uiautomator2 as u2

    d = u2.connect('192.168.0.100')

    2. 使用USB连接

    手机的序列号可以通过adb devices获取到,假设序列号是123456f,连接代码为

    import uiautomator2 as u2

    d = u2.connect_usb('123456f')

    相关文章

      网友评论

          本文标题:uiautomator2环境搭建(基于python)

          本文链接:https://www.haomeiwen.com/subject/juulqqtx.html