《51测试天地》—腾讯WeTest教你玩转手游测试
 
   
应用宝基于Robotium自动化测试
 
  首页 1 尾页
 

  一、背景目的
  应用宝项目组采用FT(Feature Team)模式,整个项目组分为多个FT,而每个FT又同时有多个需求分支在并行运作着,几乎每天都有多新特性合入主干,项目节奏快、变更频繁,且又希望能够短周期内快速地对外发布新版本,做到快速交付、持续交付。
  为了支撑项目组的这种研发模式,测试侧需要在FT分支上及主干上做大量的测试,而其中在FT分支的rebase测试、合流后验证、主干灰度测试等等阶段还包括大量的重复性测试,因此有必要在这些环节加入自动化测试,以持续验证新特性未破坏原有系统。
  二、框架选择
  如0所示,对比了目前业界常用的几个可用于Android端的自动化测试框架: 
  表1.Android自动化测试框架对比
  通过对比可以发现不同的测试框架各有优缺点,且基本都不能独自满足所有的测试场景,正所谓菜刀、牛刀、剪刀、指甲刀,刀刀皆有自己的用途与适用场景,我们需要根据项目情况及实际的使用场景来选择最适用的工具。
  Robotium基于原生Android Instrumentation扩展而来,因此基于Robotium的测试既可以使用Robotium本身的API,还可以使用Android原生的丰富API,可扩展性更强,且基于Robotium的测试在执行速度、稳定性上有一定优势,而应用宝在手机端只有Android版本,也没有跨平台的需求,综合考虑,因此选择了Robotium框架。
  三、环境搭建
  3.1、基础环境搭建
  测试工程使用了Robotium,采用了的是Android Junit工程,因此需要搭建基础的Android开发环境,包含JDK、Android SDK、Eclipse + ADT插件 + SVN插件等等开发工具,具体可搜"Android开发环境搭建"搭建基础环境。
  3.2、导入测试工程
  1、使用Eclipse导入项目
  2、配置Build Path
  3、配置keystore
  在实际项目中,如果是自家的项目,显然是不希望对被测App进行重签名的,有如下原因:
  1) 每日进行测试的包众多,一一进行重签名影响效率
  2) 如微信、应用宝等应用做了签名防护措施,重签名后将导致应用部分功能不可用甚至直接无法启动
  测试工程需要与被测工程签名一致,因此测试工程需要将keystore配置成应用宝的签名。Window--Preferences--Android--Build,如0所示,点击Browser,选择应用宝的debug.keystore签名,配置完成后,用Eclipse调试时,测试工程打出的apk即是应用宝的签名了,可以测试应用宝对外发布的任何包。
   
  图1 Eclipse中配置自定义签名
  4、配置编码
  新导入工程后,工程可能有许多红点,此时工程任意有注释的java文件,如果注释为乱码则是因为编码不一致导致。此时需要将工程编码设置为utf-8。也可右键选择测试工程,仅设置该工程为UTF-8编码
  3.3、Eclipse设置
  工欲善其事,必先利其器,测试工程使用Eclipse作为IDE,而为了编写代码可以更高效,有必要进行一些提高效率的设置。
  1、配置输入联想
  为了提高测试用例的代码编写效率,很有必要配置输入联想,在Eclipse中Preferences--Java--Editor--Content Assist配置输入联想
   
  图2 Eclipse中配置代码自动提示
  其中Auto activation triggers for java中默认只有.符号,即输入.时才会有代码联想出来,为了充分利用代码联想功能,需要在该输入框中把abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ这26个字母及.号输进去,这样,当键入.号或26个字母时,就会有自动提示,提高代码输入效率。
  2、配置Eclipse的JVM参数
  Eclipse的JVM默认设置参数较小,因此可能造成各种卡慢现像,而我们的开发机配置一般较高,可以通过调整JVM参数充分利用机器资源提高Eclipse运行的流畅度,修改Eclipse安装目录下的eclipse.ini文件即可,具体可参考如下配置(修改-vmargs参数后面的配置):
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms2048M
-Xmx2048M
-Xmn656M
-XX:PermSize=512M
-XX:MaxPermSize=1024M
-XX:+UseParallelGC
-XX:CMSInitiatingOccupancyFraction=85
-Xverify:none
-Xnoclassgc
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled
-XX:+DisableExplicitGC
  3、关联源码
  a) 关联内引用jar包的源码
  导入测试工程后,libs下的Robotium和Uiautomator两个jar使用了properties配置,默认就已关联上了sources目录下的源码,如0所示:
   
  图3 Eclipse中配置关联private jar
  b) 关联外引用jar包的源码
  关联外引用jar包的源码,这里主要关联Android SDK中的源码,右键android.jar,进入Java Source Attachment选项,关联sdk中的源码,如0所示:
   
  图4 Eclipse中配置关联外引用的jar
  至此,不论进入的是Android SDK还是Robotium中的class类,均可以查看到其源码实现。
......
(下载专刊即可查看全文)
  本文收录于《测试专刊-腾讯TMQ移动测试方法集锦》。
  版权声明:本文出自《测试专刊-腾讯TMQ移动测试方法集锦》。51Testing软件测试网及相关内容提供者腾讯TMQ团队拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

 
1  
 

 

51Testing软件测试网 | 快捷面板 | 站点地图 | 联系我们 | 广告服务 |

建议使用IE 5.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
版权所有 上海博为峰软件技术有限公司 Copyright@51testing.com 2003-2016, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com   业务联系:service@51testing.com  021-64471599-8017