一、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中随意选择一个进行使用,网上的相关学习资料特别多   (个人建议,当然可以根据自己爱好进行选择)

自动化测试框架 hierarchyViewer、Uiautomator、Appium的区别比较!的更多相关文章

  1. python 自动化测试框架unittest与pytest的区别

    前言: 有使用过unittest单元测试框架,再使用pytest单元测试框架,就可以明显感觉到pytest比unittest真的简洁.方便很多. unittest与pytest的区别: 主要从用例编写 ...

  2. 自动化测试框架TestNG

    测试框架有很多,比如常用的 UI自动化测试框架 ①.java+selenium/appium+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/ ...

  3. 自动化测试框架对比(UIAutomator、Appium)

    在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后通过调⽤用UiAutomator的命令,实现App的自动化测试. UiAutomator测试框架是And ...

  4. MAC中在eclipse luna上搭建移动平台自动化测试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录

    这几天因为原来在用的hp laptop的电池坏掉了,机器一不小心就断电,所以只能花时间在自己的macbook pro上重新搭建整套环境,大家都知道搭建环境是个很琐碎需要耐心的事情,特别是当你搭建的安卓 ...

  5. Appium+python自动化(四十一)-Appium自动化测试框架综合实践 - 即将落下帷幕(超详解)

    1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.到今天为止,大功即将告成:框架所需要的代码实现都基本完成. 2.data数据封装 2.1使用背景 在实际项目过程 ...

  6. 『与善仁』Appium基础 — 8、Appium自动化测试框架介绍

    目录 1.主流的移动端自动化测试框架 (1)Robotium (2)Macaca (3)Appium 2.自动化测试工具的选择 3.Appium简介 提示:我们前面说的Android环境搭建和adb命 ...

  7. Windows下部署Appium教程(Android App自动化测试框架搭建)

    摘要: 1,appium是开源的移动端自动化测试框架: 2,appium可以测试原生的.混合的.以及移动端的web项目: 3,appium可以测试ios.android.firefox os: 4,a ...

  8. UiAutomator自动化测试框架介绍

    UiAutomator自动化测试框架介绍 环境搭建 1         必要条件 1.1       JDK 1.2       SDK(API高于15) 1.3       Eclipse 2    ...

  9. Appium基于Python unittest自动化测试 & 自动化测试框架 -- PO并生成html测试报告

    基于python单元测试框架unittest完成appium自动化测试,生成基于html可视化测试报告 代码示例: #利用unittest并生成测试报告 class Appium_test(unitt ...

随机推荐

  1. 初识Java——循环语句

    循环语句就是在一定条件下反复执行某一个操作.具体有三种方法实现: 1while循环语句 while语句也称作条件判断语句,它的循环方式为利用一个条件来控制是否要反复执行.语法如下: while(条件语 ...

  2. 安装VirtualBox后 不能选择64bit的系统

    之前在台式机上安装VirtualBox,一切OK,能够安装64位的任何版本iso包今天在hp笔记本上安装,安装VirtualBox完毕后,只能选择32位的iso版本. 而我目前只有一个linux64b ...

  3. use ECharts with Angular 2 and TypeScript

    https://stackoverflow.com/questions/38158318/is-it-possible-to-use-echarts-baidu-with-angular-2-and- ...

  4. SOFA 源码分析 — 调用方式

    前言 SOFARPC 提供了多种调用方式满足不同的场景. 例如,同步阻塞调用:异步 future 调用,Callback 回调调用,Oneway 调用. 每种调用模式都有对应的场景.类似于单进程中的调 ...

  5. 条件随机场CRF(二) 前向后向算法评估标记序列概率

    条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估标记序列概率 条件随机场CRF(三) 模型学习与维特比算法解码 在条件随机场CRF(一)中我们总结了CRF的模 ...

  6. C语言pow()函数的计算精度问题

    编程计算 a+aa+aaa+-+aa-a(n个a)的值,n和a的值由键盘输入.例如,当n=4,a=2,表示计算2+22+222+2222的值. 程序运行结果示例: Input a,n: 2,4↙ su ...

  7. 如何查看chrome浏览器已保存的密码

    该方法是针对在chrome中已经存储了登陆密码的情况. chrome版本是 66.0.3359.139(正式版本) (64 位),不知道哪天会改了这个bug. 一般来说,我们登陆chrome浏览器已经 ...

  8. 50行ruby代码开发一个区块链

    区块链是什么?作为一个Ruby开发者,理解区块链的最好办法,就是亲自动手实现一个.只需要50行Ruby代码你就能彻底理解区块链的核心原理! 区块链 = 区块组成的链表? blockchain.ruby ...

  9. HTTP多线程下载+断点续传(libcurl库)

    目录索引: 一.LibCurl基本编程框架 二.一些基本的函数 三.curl_easy_setopt函数部分选项介绍 四.curl_easy_perform 函数说明(error 状态码) 五.lib ...

  10. 【java错误】Non-terminating decimal expansion; no exact representable decimal result

    问题描述 意思是“无法结束的除法表达式:没有精确的除结果”.当时输入的10/3,结果应该是3.3333....333. 下面这种处理方式有问题. BigDecimal num3 = new BigDe ...