基于Robotium自动化测试工程从Eclipse迁移至Android Studio

导读

2016年11月份,google已正式宣布停止对集成开发环境(IDE)Eclipse的支持,虽然早在google推出Android Studio时就早已知道这一天迟早会到来,但由于多年的Eclipse使用习惯及项目中的其他原因,自动化测试工程仍然使用Eclipse中进行开发与维护。在自动化测试适配Android7.0版本时,发现Eclipse已无法很好支持用例的编写与调试,故迁移至Android Studio已成必然。

本文记录介绍在Eclipse上的基于Robotium自动化测试工程如何迁移至Android Studio,如何配置项目,及如何基于gradle持续构建测试工程。

一、环境准备

1、安装Android Studio;

下载地址:http://www.android-studio.org/

2、升级JDK至1.8(推荐);

新版的Android工具大多用的JDK1.8,不过如果是用的Android Studio,则推荐使用内建的JRE环境。

Android SDK

3、检查确认安装好的Android Studio关联好正确的Android sdk路径。

二、按官方文档导入项目

官方详情文档:https://developer.android.com/studio/intro/migrate.html#android_studio

按文档中所介绍的,将Eclipse项目导入Android Studio中,导入后工程目录结构如下:

导入工程结构

app/src/main目录下包含了原测试工程作为Android项目的主要文件,包含代码文件java、清单文件AndroidManifest.xml等。同时Android Studio自动生成了build.gradle、gradlew等等gradle构建相关的文件。

三、设置代理

若国内网络受限,可以对Android Studio设置网络代理。

设置代理

四、调整测试工程

Android Studio是将被测工程与测试工程放一起的,而我们这个基于Robotium的自动化测试不想依赖源码。当时是为了独立apk工程,因此迁移后,需要将main下的目录全拷贝一份至androidTest目录,同时为了使main目录下能正常编译,创建了个空壳Android项目,即main下只包含一个简单Activity的最简Android工程。结构如下:

调整测试工程

需要注意的是,Android Studio默认会将androidTest目录下的测试工程的packagename设置为被测工程的packagename加后缀.test,即若Android工程的packagename为com.tencent.example,那么测试工程的packagename则为com.tencent.example.test。而为了让包名与原来保持一致,需要修改build.gradle,设置testApplicationId。

五、配置Java依赖库

刚将Eclipse工程导入Android Studio后,依赖库可能设置有误,此时需要修改相应依赖库File——Project Structure。

配置依赖库一

相应的Scope有compile、TestCompile、Provided、Debug Compile等等。

Test Compile:构建测试工程时用到的依赖包;

Provided:编译时需要,但不需要打包进apk的依赖包。

设置后,build.gradle构建文件中会自动生成类似如下的内容: 

配置依赖库二

也可直接修改build.gradle文件调整依赖包,

六、修改签名

类似于Eclipse,测试工程需要与被测工程同样的签名,为了在平时调试时就能正常运行用例,需要Android Studio对测试工程的打包默认就用被测工程的签名。

修改签名一

修改签名二

配置后,相应的build.gradle文件就会包含相应的签名信息:

修改签名三

七、运行测试用例

1、运行用例类中的所有用例:

右键选中测试用例类,选择Run xxxTest;

2、运行用例类中的某个用例:

打开该用例类,光标放在该用例的代码中,右键选择Run即可

要修改运行配置,则如下图点击Edit Configurations。

运行测试用例一

运行测试用例二

运行用例后可以在命令行中看到am instrument调起用例:

运行用例三

至此,Eclipse中的测试工程就已经迁移至Android Studio,且可以正常运行测试用例了。

八、持续构建测试工程

Android Studio的工程根目录下有gradlew可执行文件,该文件即gradle的封装版,可以不用事先手动安装gradle。运行gradlew tasks可以看到当前项目的gradle任务列表,如下图所示,可以看到使用gradlew assembleAndroidTest即可构建测试工程。

持续构建

参考附录:
1、测试工程官方详情文档:
https://developer.android.com/studio/test/index.html;
2、Eclipse工程迁移至Android Studio文档:
https://developer.android.com/studio/intro/migrate.html#android_studio;
3、Android Studio用户指南:
https://developer.android.google.cn/studio/intro/index.html?hl=zh-cn



留言