腾讯Android自动化测试实战3.1.3 环境搭建

简介:

3.1.3 环境搭建

使用Robotium进行自动化测试的工程采用的是Android Junit Test工程,基础环境与Android开发环境一致,为了方便本书第3章及第10章的讲解,本书的官网(http://tmq.qq.com/)附上了改造后的NotePad和NotePadTest工程,环境搭建步骤如下:

步骤1:安装基础环境(搜索引擎搜“Android开发环境搭建”)。

步骤2:导入工程。

下载随书官网中的NotePad和NotePadTest两个工程,打开Eclipse→File→Import,选择“Existing Projects into Workspace”,如图3-2所示。选择NotePad工程所在的目录,导入NotePad工程。使用相同的步骤,导入NotePadTest工程。如图3-3所示。

 

图3-2 选择导入已存在的工程至工作空间

 

 

 

图3-3 选择NotePad及NotePadTest工程所在的目录

步骤3:配置工程。

导入两个Demo工程后,由于两个工程均包含有一些配置文件,因此如果没有提示错误,则可以直接使用;如果还有提示错误,请依实际情况检查以下配置项。

(1)配置签名:两个工程需要签名一致,这里使用Android开发环境中自带的debug.keystore进行签名,因此需要确保环境中包含该签名文件,签名配置查看:Window→Preferences→Android→Build,如图3-4所示。

(2)配置build target:build target即指定使用哪个Android平台来构建这个项目,两个工程均配置为使用target=android-19,即使用sdk中platforms目录下android-19目录中的android.jar这个jar包编译项目,如图3-5所示。

若你的开发环境中未下载相应的API level的jar包,请使用SDK Manager下载,或者自行将project.properties配置文件中的target换成用户机器中已下载的API level。

 

图3-4 检查签名文件

 

图3-5 配置build target

(3)引用Robotium的jar包并关联源码:Robotium测试框架以jar包形式提供,在测试工程中引用Robotium的jar包即可。Android的Junit形式测试工程与Android工程一样,将要引用的jar包放入libs目录下,在Eclipse中将默认变成Android Private Libraries私有库,这样默认在Eclipse中就可以引用该jar中的API,在编译时也会将其编译进测试工程的APK中,如图3-6所示。

此外,为了方便查看Robotium中的源码实现,一般也会选择关联引用的jar包的源码,如上图所示,在libs中新建相应的properties文件,然后使用src = 形式的命令指定源码所在的目录即可。

 

 

图3-6 配置Robotium的jar包并关联源码

(4)配置编码:新导入工程后,由于工程里会含有一些中文注释,常常会由于编码不一致,导致代码结构被破坏而引起工程编译出错,Demo中的两个工程均采用UTF-8编码,因此需要检查导入后编码是否为UTF-8,右键工程依次选择Properties→Resource,查看编码,如图3-7所示。

 

图3-7 配置编码

(5)配置Instrumentation:测试工程需要配置Instrumentation以指定要注入的被测进程,即指定被测App,在NotePadTest中使用<instrumentation>标签指定targetPackage为被测应用的包名,如图3-8所示。

步骤4:运行示例。

首先确保有手机开启了USB调试,并连接了电脑,然后如图3-9所示,右键选择示例的测试类,例如右键选择NotePadTest.java类,选择Run As→Android Junit Test,即可运行Demo中的测试用例。

 

 

图3-8 配置Instrumentation

 

图3-9 运行示例

对于环境搭建,新手较容易出现如下问题:

常见问题1:The import android cannot be resolved

需要检查上文配置工程部分中配置的build target是否正确。

常见问题2:java.lang.NoClassDefFoundError:com.robotium.solo.Solo

NoClassDefFoundError指在编译时该类是存在的,但在运行的时候找不到该类,报找不到Solo类时一般意味着Robotium的jar包未打进测试工程的apk包中。首先,右键测试工程→Build Path→Configure Build Path,查看确保在Libraries中包含了Robotium,如图3-10所示。由于demo中将Robotium的jar包放至libs目录下了,因此默认将包含至Android Private Libraries中。

然后,如图3-11所示,在Build Path的Order and Export中确保Robotium的jar包处于勾选状态(处于勾选状态即意味着该jar的Class类将被打包进测试工程的APK中,而例如Android SDK中的android.jar包,由于其Class类在手机的Android系统中已存在,因此不需要勾选,在运行时也可以找到相应的类)。

 

图3-10 确保Libraries中包含Robotium

 

图3-11 确保Order and Export中Robotium的jar包被勾选

相关文章
|
2月前
|
监控 安全 Android开发
【新手必读】Airtest测试Android手机常见的设置问题
【新手必读】Airtest测试Android手机常见的设置问题
|
3月前
Android4.1.0实战教程---自动阅读小说
Android4.1.0实战教程---自动阅读小说
35 0
|
25天前
|
缓存 移动开发 Java
构建高效Android应用:内存优化实战指南
在移动开发领域,性能优化是提升用户体验的关键因素之一。特别是对于Android应用而言,由于设备和版本的多样性,内存管理成为开发者面临的一大挑战。本文将深入探讨Android内存优化的策略和技术,包括内存泄漏的诊断与解决、合理的数据结构选择、以及有效的资源释放机制。通过实际案例分析,我们旨在为开发者提供一套实用的内存优化工具和方法,以构建更加流畅和高效的Android应用。
|
1月前
|
存储 Android开发 C++
【Android 从入门到出门】第五章:使用DataStore存储数据和测试
【Android 从入门到出门】第五章:使用DataStore存储数据和测试
30 3
|
1月前
|
存储 SQL 数据库
【Android 从入门到出门】第六章:使用Room数据库并测试
【Android 从入门到出门】第六章:使用Room数据库并测试
29 4
|
1月前
|
网络协议 关系型数据库 MySQL
安卓手机termux上安装MariaDB数据库并实现公网环境下的远程连接
安卓手机termux上安装MariaDB数据库并实现公网环境下的远程连接
|
2月前
|
算法 Java Android开发
安卓逆向 -- 实战某峰窝APP(静态分析)
安卓逆向 -- 实战某峰窝APP(静态分析)
22 0
|
2月前
|
网络协议 算法 Android开发
安卓逆向 -- 实战某峰窝APP(动态分析)
安卓逆向 -- 实战某峰窝APP(动态分析)
24 4
|
2月前
|
开发工具 Android开发
安卓系统7.1搭建Xposed环境
安卓系统7.1搭建Xposed环境
27 1
|
2月前
|
测试技术 API Python
Python自动化测试:unittest与pytest的实战技巧
Python自动化测试:unittest与pytest的实战技巧