Robotium的手机自动化测试,很多都是利用app源代码里的Id定义来开发自动化脚本。而在我开始要为项目中的app写自动化测试脚本的时 候,开发的环境还很不稳定,app也还处于开发的状态中,而且,在需要自己搭建Android整个开发环境的时候,也遇到许多需要耗费很多时间去解决的开 发问题。因此,我觉得,在这种情况下,如果自己的自动化脚本环境能和开发完全独立,那么,应该可以更好地展开自动化脚本的开发。所以,在网上一番探索后, 选择了只需要apk安装包的方法。
当然,这样也会遇到问题,比如,在开发还没有完全结束前,app的功能会随时发生变化,而在原有基础上开发好的自动化脚本也就需要很多的 rework。但是,我希望的是,在app的功能还没有完全稳定前,可以根据现有的app,把整个自动化开发框架搭好,此后,便可以在这个框架的基础上, 很轻松地去改一些细微的功能变动部分的自动化脚本。
所以,从测试的角度上看,仅需要apk安装包的方式,主要有以下几个优点:
1. 测试人员无需在Eclipse中搭建复杂的Android开发环境(基本的Android SDK和Java环境还是必需的。)
2. 在app还没开发完全的情况下,测试人员可以根据大致的app功能,把自动化开发框架建好,以利于后期对具体功能展开自动化脚本的开发。
3. 在进行自动化测试时,即使不用到持续集成,也可以较为方便地测试迭代中的app——只需要在测试设备上(模拟机或者手机)安装最新的app即可。
下面就来介绍下,这种仅需apk安装包版的Robotium手机自动化开发环境的准备。
1. 从开发人员处获取apk安装包/或者Git等源代码控制工具中获取源代码
在我的项目中,是开发的源代码是使用MVN作为项目管理工具,所以,只需要打开命令提示符(cmd),然后进入app的源代码,敲入mvn install,即可得到apk文件
例如:
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进行关联。