基于 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 条评论
登录 后参与评论

相关文章

来自专栏Guangdong Qi

xcode模拟器上下黑边

1405
来自专栏FreeBuf

OpenVAS开源风险评估系统部署方案

OpenVAS,即开放式漏洞评估系统,是一个用于评估目标漏洞的杰出框架。功能十分强大,最重要的是,它是“开源”的——就是免费的意思啦~ 它与著名的Nessus“...

4187
来自专栏北京马哥教育

原创投稿 | 使用nagios监控主机及服务

写在前头:限于个人对nagios的了解有限,写得不够深入与系统,甚至可能会有些错误,各位看官还多包涵。本文主要涉及的是nagios daemon、nrpe及三个...

30311
来自专栏JavaEE

nginx+vsftp搭建图片服务器前言:简介:nginx的安装:vsftp的安装:配置nginx为图片服务器:总结:

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

如何在Ubuntu 16.04上添加和删除用户

您应该知道最基本任务之一是如何在新的Linux服务器上添加和删除用户。当您创建新系统时,您通常(例如在DigitalOcean Droplets上)默认情况下仅...

5454
来自专栏LanceToBigData

Maven(一)初识Maven

前言 在这之前一直都有去看关于Maven的相关介绍,但是没有到真正要用的时候,自己总是以为懂了。其实真的感觉Maven并没有想象的那么简单! 那我们该怎么去学习...

2608
来自专栏北京马哥教育

试试Linux下的ip命令,ifconfig已经过时了

linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。ifconfig...

4626
来自专栏好好学习吧

testng执行多个suite

由于testng.xml中只能设置一个<suite>标签,就无法创建多个测试集,通过<suite-files >标签可以实现允许多个测试集。

2691
来自专栏bboysoul

什么是EOF

EOF的意思是End Of File是文件尾的标志。在数值上来说就是-1。 当在文件操作的时候,碰到文件结束,或者数据读取错误是均会返回EOF。 在linu...

842
来自专栏hadoop学习

DKhadoop安装配置详细教程与常见问题解决方法

上周分别就DKHadoop的安装准备工作以及服务器操作系统配置写了两篇分享的文章,这是个人第一次尝试写一个系统性的分享文章,必然会有很多疏漏的地方,还望见谅吧。...

270

扫码关注云+社区