您的位置:首页 > 移动开发

利用CTS框架实现APP的自动化白盒测试

2016-07-21 16:25 633 查看

利用CTS框架实现APP的自动化白盒测试

CTS介绍

CTS是Compatibility Test Suite的简称,意为Google兼容性测试,手机设备需要通过CTS测试以保证在Android上开发的程序能够在手机设备上运行。手机厂商开发的手机需要向google提交CTS报告才能在市场上销售。

CTS工具可以在https://source.android.com/compatibility/cts/downloads.html下载。

下载完成以后解压



进入tools, 然后在终端敲入./cts-tradefed, 即可进入测试环境(JAVA JDK需正确安装)



tools目录:



其中,CTS依赖的tradefed-prebuilt.jar是以jar包形式释放的,是由tradefederation编译而来,源码可以在

https://android.googlesource.com/platform/tools/tradefederation/+/master下载。

执行命令run cts –plan CTS即可进行CTS整体测试。



测试完成以后,生成的log保存在android_cts/repository/logs目录下,结果保存在android_cts/repository/results目录下。



关于CTS更详细的设置和测试,请参考我的另一篇博客Google CTS测试指导

关于CTS详细的框架解析,可参考

http://blog.csdn.net/column/details/itfootball-cts.html?&page=2

利用CTS实现APP自动化白盒测试

2.1 CTS 测试case组织

CTS测试的case非常多,涵盖了系统的方方面面,这些case主要是以apk和对应的xml文件来提供的。在android_cts/repository/testcases目录下可以看到。



Xml文件里面有详细的测试case:



测试某一类型的case的时候会先安装对应的apk,测试完成以后再卸载。

2.2 自动化白盒测试APP

基于CTS的case组织,由开发人员提供测试案例,我们可以使用CTS来实现APP的自动化白盒测试,比如Dialer, Email等(Dialer,Email等应用google已经提供了测试代码,比如Dialer:AOSP/packages/apps/Dialer/tests)

下面以Dialer为例说明:

1  修改packages/apps/Dialer/tests/Android.mk
include $(BUILD_PACKAGE)=>include $(BUILD_CTS_PACKAGE)




这一步是为了生成测试apk对应的xml.



2  修改目录名
packages/apps/Dialer/tests=>packages/apps/Dialer/Dialer_tests
这一步主要是为了在xml里面生成的appPackagesName唯一,后面写自定义的plan的时候区分入口。




3 编译生成测试apk和xml文件

mmm packages/apps/Dialer/Dialer_tests



4 将生成的测试apk和xml拷贝到android_cts/repository/testcases目录下。



5 自定义plan

在android_cts/repository/plans目录下新建plan Jaychou.xml,编辑内容



6 执行测试

进入android_cts/tools/,在终端敲入./cts-tradefed, 执行Jaychou这个plan

run cts –plan Jaychou

结果提示如下错误:Could not find test apk Dialer.apk



这是CTS的流程要求安装被测试的apk Dialer.apk,但在testcases目录下没有找到这个apk所以报错。这里需要修改源码重新编译cts-tradefed.jar, 所以不能再直接使用解压出来的cts-tradefed.jar.

编译完本地的cts-tradefed.jar后替换掉tools目录下的。然后重新执行命令

run cts –plan Jaychou



7 查看报告

android_cts/repository/results/TIME/testResult.xml



从报告上可以看到具体的fail,结合log和源码进行分析

说明

本文所描述的方式是借用CTS来测试系统APP, 对CTS本身的框架代码改动较少,核心在于APP的测试代码如何写,需要APP开发人员具有良好的代码能力。通过这种方式可以使开发出来的APP更加稳定和健壮。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  白盒测试 android CTS