[Android] Robotium手机自动化测试(仅需apk安装包版)——环境搭建

Robotium的手机自动化测试,不少都是利用app源代码里的Id定义来开发自动化脚本。而在我开始要为项目中的app写自动化测试脚本的时候,开发的环境还很不稳定,app也还处于开发的状态中,并且,在须要本身搭建Android整个开发环境的时候,也遇到许多须要耗费不少时间去解决的开发问题。所以,我以为,在这种状况下,若是本身的自动化脚本环境能和开发彻底独立,那么,应该能够更好地展开自动化脚本的开发。因此,在网上一番探索后,选择了只须要apk安装包的方法。html

固然,这样也会遇到问题,好比,在开发尚未彻底结束前,app的功能会随时发生变化,而在原有基础上开发好的自动化脚本也就须要不少的rework。可是,我但愿的是,在app的功能尚未彻底稳定前,能够根据现有的app,把整个自动化开发框架搭好,此后,即可以在这个框架的基础上,很轻松地去改一些细微的功能变更部分的自动化脚本。java

因此,从测试的角度上看,仅须要apk安装包的方式,主要有如下几个优势:android

1. 测试人员无需在Eclipse中搭建复杂的Android开发环境(基本的Android SDK和Java环境仍是必需的。)app

2. 在app还没开发彻底的状况下,测试人员能够根据大体的app功能,把自动化开发框架建好,以利于后期对具体功能展开自动化脚本的开发。框架

3. 在进行自动化测试时,即便不用到持续集成,也能够较为方便地测试迭代中的app——只须要在测试设备上(模拟机或者手机)安装最新的app便可。eclipse

 

下面就来介绍下,这种仅需apk安装包版的Robotium手机自动化开发环境的准备。工具

1. 从开发人员处获取apk安装包/或者Git等源代码控制工具中获取源代码测试

  在个人项目中,是开发的源代码是使用MVN做为项目管理工具,因此,只须要打开命令提示符(cmd),而后进入app的源代码,敲入mvn install,便可获得apk文件ui

  例如:google

  1) cd .../TestApp

  2) mvn install

  3) Build Success后,在TestApp目录下找到target目录,在target目录中,便可找到最新生成的apk文件。

2. Android的apk发布,须要签名。具体信息,详见:http://developer.android.com/tools/publishing/app-signing.html

  为了顺利在测试设备上安装apk,咱们须要对拿到的apk进行从新签名(Re-sign)。

  从新签名的工具,网上不少,我使用的是re-sign.jar。

  在用户目录下,会有一个.android的目录,把re-sign.jar放在该目录下。

  Re-sign步骤以下:

  1) 打开命令提示符:cmd

  2) cd .../.android

  3) 运行java -jar re-sign.jar,打开resign工具

  4) 把最新的apk文件拖拽到打开的resign工具中,完成后,就会产生一个从新签名的apk文件。

  Ps: resign后,会获得一个package name和main activity name,咱们须要记下这两个名字,在第4步中会用到。

  

3. 在模拟机中安装从新签名后的apk文件,步骤以下:(在真机中安装与模拟机相似,具体操做,Google或者Baidu便可)

  1) 打开Android SDK安装目录

  2) 找到sdk下的platform-tools目录

  3) 把从新签名后的apk文件放在该目录下

  4) 打开命令提示符:cmd

  5) cd .../sdk/platform-tools

  6) 打开要安装apk的模拟机

  7) 运行命令:adb install testedapp.apk。看到Success,说明apk已经安装成功了。

  Ps: 在安装apk以前,确保旧版的app已经在模拟机中卸载完成。不然,执行该命令,会提示说安装失败。

4. 在eclipse中,新建一个Android Test Project,进行配置,使得自动化脚本与要测试的apk进行关联。

  1) 修改Android Test Project下的AndroidMainfest.xml文件,使得粗体标注的package名与resign生成的名字一致
    <instrumentation
          android:name = "android.test.InstrumentationTestRunner"
        android:targetPackage = " com.example.mobile.testedapp " />
  2) 在自动化脚本测试类中,声明初始类,也要与resign生成的main activity类名一致
    private static final String  LAUNCHER_ACTIVITY_FULL_CLASSNAME =" com.example.mobile.testedapp.MainActivity" ;
5. 这样,就能够在eclipse中的Android Test Project中尽情地开发自动化脚本,并在安装好的apk基础上运行了!

  

Reference: 

https://code.google.com/p/robotium/wiki/RobotiumTutorials

相关文章
相关标签/搜索