Android自动化框架浅析

发表于:2014-10-20 09:00

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:丁津津(冰阳)    来源:51Testing软件测试网原创

  笔者在2011年的时候接触过一段时间的android自动化,那时候Android自动化测试刚刚兴起,可用的框架不多,功能也不完善。
  三年间Android突飞猛进,系统版本从当初的Froyo2.2发展到如今的AndroidL并细分出了Android Wear,原有框架得到了长足的改进或是消亡,一些新的自动化测试框架也在这期间出现了。
  首先介绍的是它们的鼻祖Instrumentation。
  说明:下面有些框架不止支持Android,有的还同时支持iOS甚至Windowsphone,本文只介绍Android的部分。本文不会介绍各个框架的具体使用方法,需要的话可以通过万能的Google
  1.Instrumentation
  Instrumentation是Google官方提供的框架,包含在AndroidSDK中,最初的一些框架比如Robotium都是基于它进行开发的,所以有必要首先对它进行了解。
  通过跟踪Android的核心组件android.app.Activity类的源码,可以发现android.app.Instrumentation类介入了Activity的启动过程,进一步查看Instrumentation类的源码可以发现它具有发送按键事件的功能(更多细节有兴趣的同学可以自行阅读Android的源代码)。
  Google正是以android.app.Instrumentation类为核心,遵循Junit规范建立了Instrumentation测试框架,有关代码都包含在AndroidSDK的android.test包下。该体系比较重要的两个类是InstrumentationTestRunner和
  InstrumentationTestCase,它们都通过继承或组合的方式使用了Instrumentation类。
    ......
 查看全文请点击下载:http://www.51testing.com/html/49/n-867649.html
  2.Robotium
  项目首页:https://code.google.com/p/robotium/
  Robotium是最早的开源Android自动化测试框架之一,也是发展至目前用户最多,社区活跃度最高的。
  它基于Instrumentation开发,其核心技术是通过反射获取了当前界面上所有的View对象(有兴趣的同学可以查看Android源码
  com.android.internal.policy.impl.PhoneWindow.DecorView这个内部类,同时可以了解Android的View体系),并以多种API的形式提供出来,方便在编写用例时获取、操作View对象。
  与Instrumentation一脉相承,基于Robotium编写的case遵循Junit规范,而且让笔者不得不吐槽的是,到目前为止,Google在Android里面集成的还是Junit3。
  可以通过扩展开发支持Junit4,下面的章节会介绍到。
  Robotium的主要特点:
  API很易于测试人员使用,与WebDriver体系面向对象的API不同,它提供了一套面向过程的API,贴近测试的步骤。
  支持对WebView的操作。现在比较流行的一种App开发模式是在应用内大量使用WebView,集团内部的淘宝、支付宝客户端都可以见到这种模式,这种开发模式的最大好处是一些频繁变化的内容只需要重复发布服务器端即可,不需要用户升级客户端。Robotium这个特性还是非常实用的。
    ......
 查看全文请点击下载:http://www.51testing.com/html/49/n-867649.html

 版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号