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

作者:陈航特

团队:腾讯移动品质中心TMQ

导读

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环境。

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。

获取更多测试干货,请搜索微信公众号:腾讯移动品质中心TMQ!

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在CentOS 7上用mod_proxy将Apache设置为反向代理

反向代理是一种代理服务器,它接受HTTP(S)的请求后,把它们发送到一个或多个后端服务器。反向代理非常有用,因为许多现代网络应用使用后端应用程序服务器处理传入的...

1343
来自专栏搜云库

CentOs7.3 搭建 ZooKeeper-3.4.9 Cluster 集群服务

CentOs7.3 搭建 ZooKeeper-3.4.9 Cluster 集群服务 Zookeeper 概述 zookeeper实际上是yahoo开发的,用于分...

2187
来自专栏影子

idea/eclipse下Maven工程集成web服务(tomcat、jetty)

1172
来自专栏hadoop学习笔记

超实用hadoop虚拟机安装教程(附图文步骤)

前两天看到有人留言问在什么情况下需要部署hadoop,我给的回答也很简单,就是在需要处理海量数据的时候才需要考虑部署hadoop。关于这个问题在很早之前的一篇分...

1885
来自专栏分享达人秀

开发IDE大升级,终于迎来了Android Studio

通过前面几期的学习,我们知道了Android的前世今生,也了解了Android的系统架构和应用组件,也连续用了几期来学习Android开发环境的搭建,不...

21210
来自专栏云计算教程系列

如何在macOS上安装Python 3并设置本地编程环境

Python是一种多功能编程语言,可用于许多不同的编程项目。1991年首次出版,其名称灵感来自英国喜剧组织Monty Python,开发团队希望使Python成...

882
来自专栏Java技术分享

手把手教你用Mysql-Cluster-7.5搭建数据库集群

当你的业务到达一定的当量,肯定需要一定数量的数据库来负载均衡你的数据库请求,我在之前的博客中已经说明了,如何实现负载均衡,但是还有一个问题就是数据同步,因为负...

2058
来自专栏james大数据架构

一步到位分布式开发Zookeeper实现集群管理

  说到分布式开发Zookeeper是必须了解和掌握的,分布式消息服务kafka 、hbase 到hadoop等分布式大数据处理都会用到Zookeeper,所以...

23710
来自专栏运维一切

CENTOS7 SYSTEMCTL说明 原

PS:RHEL7和CentOS7出来有一段时间了,拿出点时间研究下,有几个地方跟6和5系列相比改变比较大,估计不少童鞋有点不太习惯。下面简要举例说明改变比较大的...

662
来自专栏腾讯Bugly的专栏

H5 和移动端 WebView 缓存机制解析与实战

作者:叶建升 个人主页:http://www.linkedin.com/in/jiansheng-ye-b3319778/ 导语 web缓存是web开发逃不开的...

3154

扫码关注云+社区