android自动化框架对比

android自动化框架   MonkeyRunner,UiAutomator,Robotium,Appium


MonkeyRunner:

首先MonkeyRunner 使用jython语言,在命令行中使用时会出现中文乱码,需要调整chcp

不支持多点触碰

脚本书写、执行、调试方便,但是socket连接不稳定(原因在于PC的usb接口提供的电压不稳,怎么解决?能用台式机别用笔记本,能用主机后面的usb端口别用前面的,电脑使用时间长了换电容换电源),需要自己修改框架才能稳定使用。

而且无法自动处理物理断连。

谷歌对于MonkeyRunning的维护在多年前已经停止

使用Socket连接从PC向设备发送命令,此时以shell用户(大概)的身份得到注入事件的权限

MonkeyRunner通过ViewServer获取UI控件,在真机上基本上都是无法开启ViewServer的。

需要修改源码后刷ROM或者替换ROM中的某个文件才能开启ViewServer。

或者使用Xposed等进行动态注入。

开启ViewServer可以获取到输入法键盘,但也不是万能的,不支持网页操作,部分输入法dialogwindow取不到,而且viewserver需要手动启动的

但是会比较经常地出现失灵的情况,此时需要关闭viewserver再重新开启。(也可能是因为 替换ROM中的文件 这种方法存在隐患 或者 是我替换的那个手机的问题)

MonkeyRunner资料比较多,但是有价值的不多。


UiAutomator:

要求4.2以上,实际上可能需要4.3,因为4.2比4.3少了一些方法

无法获取网页信息

无法获取动态地页面信息(必须等待页面停止刷新后才能获取)

无法获取输入法键盘信息

除了通过判断页面上存在的控件的方法以外无法判断页面状态,无法判断应用崩溃,如果其他后台的应用弹窗无法处理。无法判断是否有弹窗

最好把这些会弹窗的应用全删了。或者自己写个应用在后台用service监控,有哪些应用弹窗了,或者用service通过写文件的方式(数据库ContentProvider等 uiautomator好像没法直接操作)

因为无法判断当前的焦点activity所在(相关方法返回值是错误的),只能判断当前最前台的包名。

支持多点触控,多点滑动操作,但是必须在4.3以上,而且ADK中提供的Uiautomator包中的函数并不正确,需要自己重新编译一个Uiautomator包或者使用反射。

所有操作都有返回值,但是返回值本身并没有参考意义。操作成功也可能返回false,操作失败也会返回true。

需要连接PC执行,在PC命令行输出执行信息

对动态界面无力


UiAutomator2.0:

UiAutomator可以通过Instrumentation来启动。


Espresso类似于Robotium,并且更优秀

支持网页测试

    对动态界面无力


    Robotium:

    支持网页操作

    壁纸应用未知(launcher)

    多点触控的支持未知

    框架无法跨进程

    跨进程的操作需要自己实现

    需要权限的操作需要在测试的app中添加权限

    需要签名

    对动态界面无力




    ROM相关cts测试

    其实可以在windows上执行

    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值