在搭建 Python 的自动化测试环境时,执行脚本一直报错
ions.GatewayError: ('Uiautomator started failed.', "(, 'gateway error, time used 0.0s')"
后来一想好像没有进行设备的初始化,随后执行了 python -m uiautomator2 init 命令后研究下它的日志,让我们来看看是做什么的:
1、push minicap 和 minitouch 文件到/data/local/tmp/
2、push app-uiautomator.apk 文件到/data/local/tmp/,并安装
3、push app-uiautomator-test.apk 文件到/data/local/tmp/,并安装
minitouch 一个用于在 Android 设备上模拟触摸事件的小工具
minicap 一个 Android 设备上的截屏工具,可以帮助开发人员在 Android 设备上进行高品质的屏幕截图和屏幕录制
app-uiautomator.apk 安装后就是桌面的 ATX 图标,可以进行 uiautomator 的重启和停止等操作
app-uiautomator-test.apk 这个 apk 安装后无界面,相当于一个后台的进程,将 Python 代码转换 Json 格式传递给手机执行操作,ATX 原理参见《深度探索 Uiautomator2(ATX)原理(附含源码解析)》
命令解析:
Shell: ('/data/local/tmp/atx-agent', 'server', '--stop')
server --stop
:表示停止 ATX-Agent。
Shell: ('/data/local/tmp/atx-agent', 'server', '--nouia', '-d', '--addr', '127.0.0.1:7912')
server --nouia
:表示启动 ATX-Agent,不启动 uiautomator。
-d
:表示将 ATX-Agent 作为后台进程运行。
--addr 127.0.0.1:7912
:设定 ATX-Agent 的监听 IP 地址和端口。
1、安装 UIAutomator 的测试框架和相关的依赖库到 Android 设备上
2、启动 UIAutomator 的测试服务,以便在设备上运行 UIAutomator 脚本
3、在设备上创建一个目录,用于存放 UIAutomator 测试脚本相关的文件