在移动应用开发领域,APP自动化测试至关重要。本文为大家带来超实用的Python结合uiautomator2实现安卓APP自动化的教程,让你轻松掌握这一高效技能。
一、工欲善其事,必先了解其本质UiAutomator是谷歌在Android 4.1版本推出的强大UI测试框架,基于Accessibility服务,用Java编写。它最大的亮点就是能跨进程操作,提供了丰富的API,像点击、滑动、键盘输入、长按以及各种断言方法,都能轻松实现对安卓应用的自动化测试。
使用条件:Android SDK Tools要在Revision 21或更高版本,Android SDK Platform需API 18或更高版本。工具组成:uiautomatorviewer:在Android SDK 4.3中提供的图形界面工具,用来扫描和分析应用的UI控件。
uiautomator:包含各种API和测试引擎的Java库。
虽说谷歌的uiautomator库很强大,能获取屏幕上APP控件属性并操作,但缺点也明显:
测试脚本只能用Java语言编写。每次都得把测试脚本上传到设备上运行。uiautomator2只能用于安卓端测试,无法跨平台到iOS端。二、准备工作,安装先行(一)安装uiautomator2安装很简单,打开命令行,输入pip install -U uiautomator2即可。安装完成后,输入uiautomator2 --help,若能看到相关帮助信息,就说明安装成功。

首先要确保设备连接到电脑,并且在命令行输入adb devices能发现设备。接下来,根据不同需求执行命令:
如果想在所有通过USB连接电脑的手机上安装,运行python -m uiautomator2 init。要是指定手机安装,用python -m uiautomator2 init --mirror --serial $SERIAL,这里的$SERIAL要替换成你指定手机的序列号。要是觉得安装速度慢,还可以使用国内镜像,命令是python -m uiautomator2 init --mirror。安装过程中,会自动安装uiautomator-server、atx-agent、openstf/minicap、openstf/minitouch这些设备端程序。当看到提示success时,意味着atx-agent初始化成功。
三、元素定位,精准出击(一)工具一:UI InspectorUI Inspector是独立于uiautomator2的项目,主要用于查看图层结构,是旧版weditor项目的重构版本。
安装:在命令行输入pip install uiautodev,要是还需要截图功能,再输入pip install pillow。启动:安装好后,输入uiauto.dev就能启动。
weditor能帮助我们快速识别手机上的元素,方便编写代码。
安装:运行pip install -U weditor。确认安装成功:安装完成后,在命令行输入weditor --help,若能看到相关帮助信息,就说明安装成功。Windows系统创建快捷方式:在命令行执行weditor --shortcut,就会在桌面上创建一个快捷方式。解决安装问题:要是安装过程中报错UnicodeDecodeError,别慌,安装老版本就行,命令是pip install weditor==0.6.3。注意:部分用户反馈weditor启动后无法连接到设备,此时可以尝试使用UI Inspector工具。
启动方法:在命令行执行weditor,会自动打开浏览器,在页面输入设备的IP或序列号(通过adb devices命令能查看),然后点击Connect。
直接双击桌面上的WEditor快捷方式。
在命令行执行python -m weditor。

Python + uiautomator2主要由两部分组成:Python客户端和移动设备。
Python端:负责运行我们编写的脚本,然后向移动设备发送HTTP请求。移动设备:运行着封装了uiautomator2的HTTP服务,收到请求后,解析请求内容,并把它转化成uiautomator2的代码。整个工作流程如下:
先在移动设备上安装atx-agent(它是个守护进程),安装好后atx-agent会启动uiautomator2服务(默认7912端口),开始监听。然后在PC上编写测试脚本并执行,这个过程就相当于向移动设备的server端发送HTTP请求。最后移动设备通过WIFI或USB接收到请求,执行相应的操作。
通过这篇教程,希望大家都能熟练掌握Python + uiautomator2进行安卓APP自动化测试,提高开发效率,轻松应对各种测试需求。要是在学习过程中有任何问题,欢迎留言交流探讨。
