自动化测试环境搭建uiautomator2+weditor+python

1.介绍:

python-uiautomator2 是一个自动化测试开源工具,仅支持 Android 平台的原生应用测试。
官方文档:https://gitcode.net/mirrors/openatx/uiautomator2

支持平台及语言:
python-uiautomator2 封装了谷歌自带的 uiautomator2 测试框架,提供便利的 python 接口。他允许测试人员直接在 PC 上编写 Python 的测试代码,操作手机应用,完成自动化,大大提高了自动化代码编写的效率。

2.工作原理:

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

整个过程:
在移动设备上安装atx-agent(守护进程), 随后atx-agent启动 uiautomator2 服务 (默认 7912 端口) 进行监听
在 PC 上编写测试脚本并执行(相当于发送 HTTP 请求到移动设备的 server 端)
移动设备通过 WIFI 或 USB 接收到 PC 上发来的 HTTP 请求,执行制定的操作

3.环境搭建

3.1. 前提

python 3.10
Android sdk 即platform-tools 包含:adb、fastboot等 https://www.androiddevtools.cn/#
pycharm

3.2 安装uiautomator2

pip install -U uiautomator2

3.3 初始化手机:手机端服务进程

adb devices
python -m uiautomator2 init

3.4 安装weditor:手机页面元素定位工具

pip install -U weditor
pip install weditor
报错: note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

pip install weditor==0.6.4
报错:TimeoutError: The read operation timed out

重新安装
pip install weditor==0.6.4
Successfully installed facebook-wda-1.4.6 pywin32-304 tornado-6.2 weditor-0.6.4
成功

3.5 启动weditor

python -m weditor

4. 首次调试

import uiautomator2 as u2
d=u2.connect_usb(“59JZKNMZ95G6KZ6P”)
print(d.info)
报错
WinError adb shell am instrument -w -r -e debug false -e class com.github.uiautomator.stub.Stub com.github.uiautomator.test/android.support.test.runner.AndroidJUnitRunner] uiautomator2.GatewayError(gateway error, time used 0.0s): 'https://github.com/opena

4.1 小米手机设置

adb shell
dandelion:/data/local/tmp $ ls
app-uiautomator-test.apk app-uiautomator.apk atx-agent minicap minicap-images minicap.so minitouch
dandelion:/data/local/tmp $ /data/local/tmp/atx-agent version
0.10.0
dandelion:/data/local/tmp $ /data/local/tmp/atx-agent server -d
INFO[0000] run atx-agent in background
INFO[0000] atx-agent listening on :7912

打开小米手机的设置—开启开发者选项—开启USB调试—开启USB安装—开启USB调试(安全设置)
----开启通过USB验证应用(默认开启)----开启无线显示认证(可选择),
关键选项,必须不要启用MIUI优化,操作完上述设置,然后再执行 python -m uiautomator2 init (不会报错),就可以执行相关脚本了。

4.2. 蒋老大我爱你100次代码:

import uiautomator2 as u2
d=u2.connect_usb("CUYDU19621001669")
print(d.info)

d.app_start('com.tencent.mm')

d(resourceId="com.tencent.mm:id/j5t").click()
d.xpath('//*[@resource-id="com.tencent.mm:id/j4t"]/android.widget.RelativeLayout[1]').click()
d.send_keys('蒋老大')
d.xpath('//*[@resource-id="com.tencent.mm:id/j6x"]/android.widget.RelativeLayout[2]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]').click()
d(resourceId="com.tencent.mm:id/kii").click()
for i in range(100):
    d.send_keys('我爱你')
    d(resourceId="com.tencent.mm:id/b8k").click()
d.press("back")
d.press("back")
d.press("home")
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值