uiautomator2 init 做了什么

uiautomator2 入门

想要了解一个开源的项目,最好的方式就是从官方的说明文档开始入手。 我们先看下uiautomator2的由来。

uiautomator2 是一个Android UI自动化框架,支持Python编写测试脚本对设备进行自动化。底层基于Google uiautomator,Google提供的uiautomator库可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点:1. 测试脚本只能使用Java语言 2. 测试脚本必须每次被上传到设备上运行。 我们希望测试能够用一个更脚本化的语言,例如Python编写,同时可以每次所见即所得地修改测试、运行测试。这里要非常感谢 Xiaocong He (@xiaocong),他将这个想法实现了出来(见xiaocong/uiautomator),原理是在手机上运行了一个http服务器,将uiautomator中的功能开放出来,然后再将这些http接口,封装成Python库。 我们的uiautomator2项目是对xiaocong/uiautomator的增强,主要有以下部分:

  1. 设备和开发机可以脱离数据线,通过WiFi互联(基于atx-agent)
  2. 集成了openstf/minicap达到实时屏幕投频,以及实时截图
  3. 集成了openstf/minitouch达到精确实时控制设备
  4. 修复了xiaocong/uiautomator经常性退出的问题
  5. 代码进行了重构和精简,方便维护
  6. Requirements: Android >= 4.4 Python >=2.7 || <= 3.7

从上面的描述我们可以看到部分的一些原理这个原理其实跟appium有点类似,会在手机上运行一个server端由它来去接收对应的消息以及解析处理。

那我们看下要如何去使用 首先当然就是

  1. install uiautomator2了
pip install --upgrade --pre uiautomator2
  1. Install daemons to a device 电脑连接上一个手机或多个手机, 确保adb已经添加到环境变量中,执行下面的命令会自动安装本库所需要的设备端程序:uiautomator-server 、atx-agent、openstf/minicap、openstf/minitouch
python -m uiautomator2 init

上边就是我们这次要讲的重点了。 python -m uiautomator2 init到底发生了什么内容呢?
我们先看下运行的结果
在这里插入图片描述
从上述的打印信息我们可以看出来, uiautomator2 init的整个流程为以下内容

graph LR
安装minicap-->安装minitouch
安装minitouch-->安装apk/apk-test
安装apk/apk-test-->安装atx-agent
安装atx-agent-->启动atx-agent

那我们还是具体看下代码的实现是如何的

def cmd_init(args):
    if not args.serial:
        for d in adbutils.devices():
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值