介绍Robotium+Orange实现androidUI自动化测试
作者:网络转载 发布时间:[ 2014/1/27 16:22:33 ] 推荐标签:自动化测试 android Robotium
Robotium:
Robotium是一个开源的androidUI自动测试工具,这里不做介绍,可以见:http://code.google.com/p/robotium/
Orange:
Orange 是我们自己开发的运行在PC端的(只支持windows),用于组织测试用例、自动重签名apk文件、以及操作模拟器、启动运行测试用例、用 例crash以及失败重跑、测试结果收集等功能的一个工具,通过简单的配置,既可以全自动全SDK版本回归运行robotium编写的测试用例。
为什么开发Orange?
为什么要自己开发一个Orange工具,而不直接使用Robotium编写的测试代码来运行测试用例?
我们在Robotium测试用例运行的过程中发现了以下的一些问题:
1、测试用例运行过程中有时候会直接Crash,导致所有测试用例停止,同时收集不到测试结果
2、用例在模拟器上运行,用例经常会出现失败的情况, 但是你再次运行的时候可能用成功了,存在不稳定性
另外我们希望有下面的功能:
1、我们希望用户编写好以及robotium的测试用例后,能够方便的全自动全SDK版本回归运行测试用例
2、我们希望用户能够方便的指定当前运行哪些测试用例
3、我们希望能够得到一个直观的运行结果报告
当前这里重要的是在使用Robotium发现的问题,如果你的用例在运行时crash了,导致什么结果也收集不到, 如果你的自动测试用例稳定性太低,经常出现大量的失败用例,那么用户如何来相信你的测试结果,大量失败用例你去分析失败原因也是一个非常耗时的过程,如果 不能很好的解决稳定性的问题,搭建的自动测试框架失败率会大大的提高。
Orange使用步骤:
为了更好的生成测试结果报告,我们这里使用了一个开源的软件android-junit-report,官方地址:https://github.com/jsankey/android-junit-report ,该软件继承重写了android自带的InstrumentationTestRunner,会自动把测试结果生成到xml文件中。
所以基于Robotium编写测试用例的时候需要额外的进行下面的两部操作:
1、从https://github.com/jsankey/android-junit-report下载jar包,同时加入到测试用例程序中
2、修改测试程序的AndroidMainifest.xml文件,在文件中加入以下配置
<instrumentation android:targetPackage="com.netease.pris(被测应用的包名)" android:name="com.zutubi.android.junitreport.JUnitReportTestRunner" /
接下去可以开始编写测试用例了,测试用例编写完成后,
1、获取到被测应用的apk文件,以及你的测试程序的apk文件
2、填写orange框架的配置文件,有一些指定的必填配置项
该文件主要是填写需要测试的sdk版本、被测应用的apk位置、被测应用的主包名、测试程序的apk位置、测试结果收件人列表、测试用例的xml文件地址
config.properties
#填写需要测试的android sdk版本,多个的话中间用逗号隔开,不允许为空
target=android-10,android-14
#
被测试应用存放的位置,windows下目录之间用"\"来分割,不允许为空
apkpath=D:\PRIS\1.3.1\pris_generic_1.3.1.apk
# 测试程序存放的位置,windows下目录之间用"\"来分割,不允许为空
testapkpath=D:\PRIS\1.3.1\PrisUIAutoTest.apk
#
测试程序的主包名,不允许为空 package=com.netease.pris
# 运行结果的收件人列表,多个用户用逗号分割,允许为空 maillists=***@163.com,***@163.com
# 测试用例的配置文件路径,不允许为空 testCaseFile=D:\TestCaseInfo.xml
3、编写指定需要运行的测试用例文件
这里类似于testng的方式来指定需要运行哪些测试用例,但是为了解决crash以及失败重跑的问题,只支持每个测试方法单独配置,而不支持只填写到测试类级别。
TestCaseInfo.xml
<!-- packageName 填写的是测试程序的主包名,必填项 -->
<classes packageName="com.netease.mobile.autotest">
<!--
指定需要运行的测试类,这些类是在测试程序中编写的,也会安装到模拟器中-->
<class name="com.netease.mobile.autotest.testing.PersonalDataTest" >
<methods>
<!--
这里定义需要运行的具体测试方法,这些都是必填项,如果不存在会报错-->
<include name="test01ShowPersonalData" />
<include name="test02EditPersonalData" />
</methods>
</class>
</classes>
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11