一、HierarchyViewer:
优点:1)能够可视化的角度直观地获得UI布局设计结构和各种属性的信息
2)使用hierarchyviewer.bat来检索手机界面布局
缺点:1)稳定性差,出现过在获取某些控件时,概率性的会存在获取不到的情况
2)性能不好,使用HierarchyViewer功能时进行测试,获取控件等时的执行效率很低,导致整个测试的时间使用特别长,消耗调试时间
3)只能用MonkeyImage的SameAs来做截图对比
4)资料稀缺,不仅百度,google也是一样
5)HierarchyViewer相对应的API,API的提供的方法,没有uiautomator提供的详细和多
6)新手学习起来较难
二、Uiautomator:
优点:1)可以对所有操作进行自动化,API封装的较多,使用起来容易理解
2)可以跨应用测试,Google原生,其稳定性和后续的维护更新可以得到保障,运行时也有更多的权限
3)可支持eclipse中使用
4)可以跨进程操作,这点比起其它基于instrumentation框架的自动化工具如Robotium是无法直接做到的
5)运行速度快
6)使用的人多,网上搜索资料也较多,遇到的问题基本都能搜索到对应的解决方式
7)明晰API,提供最灵活精确的控制。UiAutomator框架对外提供的API,主要有UiDevice、UiSelector、UiObject、UiCollection和 UiScrollable等
8)使用uiautomatorviewer.bat来检索手机界面视图
9)支持的语言可以有python、java等,google推出的底层框架使用java编写的,但是在网上可找到python封装的底层框架,因此也可使用python进行自动化测试
10)支持设备无源码测试
11)新手学习起来较容易
缺点:1)android版本需要高于4.0以上
2)需要API17及以上
3)不支持Webview,所以一般无法对浏览器应用进行测试
4)基于Junit 3, 相对于Junit4, Testing等测试框架,Junit 3不具备许多功能
三、Appium
优点: 1)可支持eclipse中使用
2)支持webview
3)支持跨平台,android和ios都可用,开源,支持的语言多,如:java、python
4)基于Junit 3/Junit4,功能齐全
5)支持设备无源码测试
6)可以跨应用测试
7)添加'unicodeKeyboard':True, #使用unicode编码方式发送字符串 ,'resetKeyborad':True,#将键盘隐藏起来 可解决中文输入法问题
8)新手学习起来较容易
缺点:1)非google原生
2)无法脱机跑
3)Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架,说到底,还是使用了uiautomator框架
4)在运行脚本上感觉执行速度较慢,没有uiautomator的执行速度快(个人感觉)
此3个自动化测试框架,本人都使用过,不太建议使用HierarchyViewer,可以在uiautomator和appium中随意选择一个进行使用,网上的相关学习资料特别多 (个人建议,当然可以根据自己爱好进行选择)