腾讯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包被勾选

相关文章
|
10月前
|
测试技术 持续交付 UED
软件测试的艺术:确保质量的实战策略
在软件开发的舞台上,测试是那把确保每个功能如交响乐般和谐奏响的指挥棒。本文将深入探讨软件测试的重要性、基本类型以及如何设计高效的测试策略。我们将通过一个实际的代码示例,展示如何运用这些策略来提升软件质量和用户体验。
|
5月前
|
开发工具 Android开发 iOS开发
如何在Android Studio中配置Flutter环境?
如何在Android Studio中配置Flutter环境?
1264 61
|
5月前
|
监控 测试技术 数据库连接
RunnerGo API 性能测试实战:从问题到解决的全链路剖析
API性能测试是保障软件系统稳定性与用户体验的关键环节。本文详细探讨了使用RunnerGo全栈测试平台进行API性能测试的全流程,涵盖测试计划创建、场景设计、执行分析及优化改进。通过电商平台促销活动的实际案例,展示了如何设置测试目标、选择压测模式并分析结果。针对发现的性能瓶颈,提出了代码优化、数据库调优、服务器资源配置和缓存策略等解决方案。最终,系统性能显著提升,满足高并发需求。持续关注与优化API性能,对系统稳定运行至关重要。
|
3月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
688 23
|
5月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
583 24
|
7月前
|
存储 人工智能 编译器
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
283 10
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
7月前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
741 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
6月前
|
数据可视化 JavaScript 前端开发
从Postman到Apipost:我的动态参数测试实战踩坑记
作为一名全栈开发工程师,在开发用户中心模块时,我遇到了复杂参数API测试的挑战。最初使用Postman时,发现其在生成动态参数(如邮箱、手机号和日期)时存在诸多问题,导致测试效率低下甚至出错。例如,随机生成的邮箱格式无效等 后来,CTO推荐了Apipost,它提供了更智能的参数生成方式:支持真实邮箱、符合规范的手机号以及合法日期范围,极大提升了测试效率和准确性。通过对比,Apipost在处理复杂动态参数方面明显优于Postman,减少了维护成本并提高了团队协作效率。现在,我们已全面切换到Apipost,并利用其「参数组合测试」功能发现了多个边界条件bug。
|
6月前
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
7月前
|
存储 数据可视化 测试技术
一个测试工程师的实战笔记:我是如何在Postman和Apipost之间做出选择的?
优秀的API测试工具应该具备: 分层设计:既有可视化操作,也开放代码层深度定制 场景感知:自动识别加密需求推荐处理方案 协议包容:不强迫开发者为了不同协议切换工具 数据主权:允许自主选择数据存储位置
186 7