uiautomator2环境搭建,连接设备

uiautomator2这个框架,环境比appium简单多了,可以值得一学的

1.uiautomator2简介和原理分析
uiautomator2是一个自动化测试开源工具,仅支持Android平台的原生应用测试。它本来是Google提供的一个自动化测试的Java库,后来发展了python-uiautomator2,封装了谷歌自带的uiautomator测试框架,提供便利的python接口,用它可以很便捷的编写python脚本来实现app的自动化测试。
原理解析:
python端:运行脚本,往移动端发送HTTP请求
移动端:安装atx-agent(相当于appium setting),然后atx-agent启动uiautomator2服务(相当于appium sever)进行监听,并识别python脚本,转换为uiautomator2的代码。
移动设备通过WIFI(同一网段)或USB接收到PC上发来的HTTP请求,执行制定的操作。

2.安装
1)首先跟appium一样,要先安装adb
下载androidsdk,并配置环境变量

2)安装uiautomator2
这个不好安装,这里推荐用清华源或者豆瓣源来安装

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --pre -U
uiautomator2

3)设备初始化:首先设备连接到PC,并能够adb devices发现该设备

4)在设备上安装atx-agent
执行 python -m uiautomator2 init

3.验证设备是否连接成功
首先看设备是否连接上了
导包并重命名 import uiautomator2 as ui2
连接设备是ui2.connect(‘设备ID’)

import uiautomator2 as ui2
d=ui2.connect('设备ID’)
print(d.device_info)
打印出来这个设备的所有信息,这就说明连接是成功的。

接下来需要定位元素,这里介绍一款好用的定位工具:weditor ,不仅可以实时定位,而且还可以在里面编写调试代码,很好用。

4.安装weditor
执行 pip install --pre weditor
可能会超时,这里推荐豆瓣源安装,亲测可用

pip install -i https://pypi.douban.com/simple weditor
安装成功
cmd中执行,python -m weditor

自动在浏览器打开一个网页,打开的页面就是weditor的页面,可以编写调试脚本。

5.打开app并编写代码
uiautomator2查看当前运行的app的命令是uiautomator2 current。
在cmd里执行uiautomator2 current
就会看到包名和当前类名

uiautomator2 打开app也比appium简单,直接用app_start自带方法就行了,pycharm里码代码

d=ui2.connect(‘127.0.0.1:62001’)
print(d.device_info)
d.app_start(‘com.ss.android.article.lite’,‘com.ss.android.article.lite.activity.SplashActivity’)
#打开app
我现在要点击到登录页面,在weditor里查到元素定位,然后用d()就可以了,比appium里的find_element_by_xpath这种简单
下面是我写的代码

import uiautomator2 as ut
import time
d=ut.connect(‘127.0.0.1:62001’)

print(d.device_info)
d.app_start(‘com.ss.android.article.lite’,‘com.ss.android.article.lite.activity.SplashActivity’)
#打开app
d.implicitly_wait(10)
d(text=‘热榜’).click()
d(text=‘未登录’).click()
d(text=“登录”).click()
d(text=“手机号”).send_keys(‘13409012321’)
d(text=‘请输入验证码’).send_keys(‘123456’)
d(text=‘进入头条’).click()
uiautomator2里还有更多好玩好用的方法,慢慢学习,慢慢消化,提高工作效率,增强自身实力。

本文转载自:https://blog.csdn.net/shenshenruoxi/article/details/108632507

你可能感兴趣的:(笔记)