UiAutomator python uiautomator2 init 作用

ice_cream · 2023年07月19日 · 2924 次阅读

背景

在搭建 Python 的自动化测试环境时,执行脚本一直报错

ions.GatewayError: ('Uiautomator started failed.', "(, 'gateway error, time used 0.0s')"

后来一想好像没有进行设备的初始化,随后执行了 python -m uiautomator2 init 命令后研究下它的日志,让我们来看看是做什么的:

具体步骤

  • 红色的框框可以看出是主要是 push 文件和安装两个 apk

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)原理(附含源码解析)

  • 黄色的框框可以看出是主要是停止和启动 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 测试脚本相关的文件

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册