h5 APP用哪个框架好,利用CTS框架实现APP的自动化白盒测试

原标题:"利用CTS框架实现APP的自动化白盒测试"的相关电脑教程资料分享。- 编程之家编辑整理。

利用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更加稳定和健壮。

相关文章

有系统u盘要网络吗(有系统u盘要网络吗怎么连接)想要重新系统...
u盘识别盘符不能格式化(u盘无法识别需要格式化)因为重装系统...
u盘错误无法读取(u盘错误无法读取文件)U盘无法读取?出现这种...
电脑f2启动相应系统(电脑f2启动相应系统错误)开机后出现如下...
win7直接启动(win7直接启动admin)一共三种启动方式,针对台式...
近期有些win7用户反映说,自己的电脑使用过程中就出现了蓝屏...