基于uiautomator2 自动化智能化测试系列:uiautomator2介绍及环境搭建

uiautomator2介绍

简介:
uiautomator2 是基于python 实现的一个开源库,原理是在手机上运行了一个http rpc服务,将uiautomator中的功能开放出来,然后再将这些http接口封装成Python库,所以它的组成可见下图
在这里插入图片描述

python-uiautomator2主要分为两个部分,python客户端,移动设备
python端:运行脚本,并向移动设备发送HTTP请求
移动设备 :移动设备上运行了封装了uiautomator2的HTTP服务,解析收到的请求,并转化成uiautomator2的代码。

整个过程

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

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

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

uiautomator2 环境搭建

  • 安装uiautomator2
  • 安装pillow来处理截图数据
  • 安装weditor,我们快速的识别手机上的元素

a、安装 uiautomator2 设置国内代理

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

如果安装不了,可能是 pip3版本过低导致,可以先进行升级 更新pip3

python3 -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述
如果线上自动安装有问题,也可以采用下面这种方式

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

b、安装pillow来处理截图数据

pip3 install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple

手机USB线与电脑连接,将关联的守护进程部署到设备电脑连接上一个手机或多个手机,确保adb已经添加到环境变量中,

执行下面的命令会自动安装本库所需要的设备端程序:uiautomator-server,atx-agent,openstf / minicap,openstf / minitouch
init就是所有USB连接电脑的手机上都安装uiautomator2

python3 -m uiautomator2 init

指定手机安装uiautomator2, 用 --mirror

python3 -m uiautomator2 init --mirror --serial $SERIAL

嫌弃慢的话,可以用国内的镜像

python3 -m uiautomator2 init --mirror

c、安装weditor,有了这个,方便我们快速的识别手机上的元素,方便写代码

pip3 install --pre -U weditor

启动 weditor
python3 -m weditor 命令会启动浏览器,输入ip+端口即可 完成链接

运行效果

1、找到一个移动设备,我这里找的是android手机,首先打开adb
这里个人建议通过wifi 连接adb,具体方式如下
a、首先通过数据线连接手机
b、运行命令 adb tcpip 5555 开启手机调试端口
c、断开数据线,通过命令adb connect 192.168.2.100 (手机ip地址)连接 adb

2、执行 python3 -m uiautomator2 init 安装uiautomator2所需的几个apk
在这里插入图片描述
3、python3 -m weditor 启动浏览器,输入ip+端口即可 完成链接,效果如下

在这里插入图片描述
这个用来查信息,做UI还原,自动化测试用力编写及运行测试都是非常方便的,对比其他平台的自动化来说,连接即可以运行,省去了装apk的各种过程。而且这个框架非常适用某些特殊场景,这个以后有机会再介绍。

下节预告

好了,简单的入门环境搭建即到这里,下节预告:
《即想学习,又想游戏当大哥,uiautomator2 如何快速开发辅助外挂》
留言或转发超过10条立即更新 😊

 
posted @ 2020-03-17 15:25  Solarium  阅读(576)  评论(0编辑  收藏  举报