自动化测试环境搭建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 inrange(100):
d.send_keys('我爱你')
d(resourceId="com.tencent.mm:id/b8k").click()
d.press("back")
d.press("back")
d.press("home")
版权归原作者 古墙白 所有, 如有侵权,请联系我们删除。