android自动化研发日志 - 细数UIAutomator缺点 - 1.0和2.0的区别

Hi,我是云测自动化研发工程师,关于我可以看这个链接:一只误入歧途的资深自动化研发(待写)

系列文章:细数UIAutomator缺点(待写)

专题:android自动化测试(待写)

关于云测的自动化测试技术:我不说你肯定不知道原来Testin云测自动化技术在某种程度上讲已经超越了谷歌(待写)


综述

本文讨论的是关于UIAutomator版本的吐槽,我们都知道UIAutomator分为两个版本,1.0和2.0

如下是两者的对比

1.02.0最低Android版本分界线大于或等于16大于或等于18运行包形式jarapk权限shell级别自身apk权限赋予

UIAutomator1.0

官网已经没有1.0的链接了,只有2.0的,我在其他地方找到老学习链接:https://stuff.mit.edu/afs/sipb/project/android/docs/tools/help/uiautomator/index.html

UIAutomator的运行包是一个jar包,运行命令大致如

# yourtest.jar是你的jar在android系统的具体文件路径,通常放在/data/local/tmp/目录下
# yourjarclass是你要执行的测试方法,例如com.test.YourTestClass#functionname
adb shell uiautomator runtest yourtest.jar -c yourjarclass#function

运行起来后,我们用命令查看UIAutomator1.0的进程是shell的

chengmingdembp:Downloads cmlanche$ adb shell ps | grep uia
shell     4101  4098  2048608 61680 futex_wait 7f81656170 S uiautomator
chengmingdembp:Downloads cmlanche$ 

所以它的权限是比较高的,启动之后便可以执行,也不需要安装,虽然它在这方面很便利,但它的获取控件信息的能力很鸡肋,只能获取到一个AccessibilityNodeInfo的root节点,而实际上,多root的情况是普遍存在的,尤其是5.0以后的android版本。

虽然它很鸡肋,但是它可以用来做安装UIAutomator2.0之前的操作,UIAutomator2.0需要自动安装,那么1.0的话就必须安装了,用它来自动点击UIAutomator2.0的安装对话框,在2.0启动之前的所有安装与权限框处理过程,都可以用1.0来做。

UIAutomator2.0

2.0是一个安装包的形式来做测试的,它拥有什么权限需要你自己去设定,谷歌现在官方只支持2.0,就说明谷歌对它有足够的重视。

官网:https://developer.android.com/training/testing/ui-automator

更好上网请用:expressvpn

2.0加入了Instrument支持,它的执行命令类似这样的:

# 详情请到官网学习
adb shell am instrument -w -r -e debug false -e class ....