• 自动化测试框架 hierarchyViewer、Uiautomator、Appium的区别比较!


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

  • 相关阅读:
    bootstrap 模态框日期控件datepicker被遮住问题的解决
    (转)Jetty实战之 安装 运行 部署
    (转)Redis研究(一)—简介
    在jboss上部署web应用
    webSphere
    Weblogic部署项目三种方式
    js构造函数详解
    范仁义js课程---51、作用域实例
    javascript疑难问题---7、使用var和不使用var声明变量的区别
    范仁义js课程---50、函数作用域
  • 原文地址:https://www.cnblogs.com/syw20170419/p/7048111.html
Copyright © 2020-2023  润新知