‌CTS测试(Compatibility Test Suite)简介

CTS测试(Compatibility[英/kəmˌpætəˈbɪləti] Test Suite)‌是一种用于验证Android设备是否符合Google的兼容性规范,确保设备能够兼容所有的Android应用程序,并提供一致的用户体验。CTS测试是谷歌认证计划的一部分,通过CTS测试的设备可以获得Google Play商店的访问权限和其他相关服务‌。


CTS测试的定义和目的
CTS测试全称为“Compatibility Test Suite”,即兼容性测试套件。它是谷歌开发的一套测试工具,用于确保Android设备与Android操作系统的兼容性。

CTS测试的主要目的是:
‌1、确保设备兼容性‌:通过CTS测试,确保设备能够兼容所有的Android应用程序,提供一致的用户体验‌
‌2、提升应用质量‌:帮助开发者设计更高质量的应用程序,减少因设备不兼容而导致的问题‌
‌3、获得Google认证‌:通过CTS测试的设备可以获得Google的认证,并享受Google Play商店的权限和其他好处‌
‌4、减少碎片化‌:通过标准化测试,减少Android设备的碎片化,提高整体生态系统的稳定性‌

CTS测试的流程和执行方法

CTS测试流程包括以下几个步骤:
‌1、环境搭建‌:搭建CTS测试环境,包括操作系统、Java环境、ADB驱动、CTS测试工具等‌
‌2、测试执行‌:执行已有的CTS测试用例并记录测试结果‌
‌3、错误分析‌:根据测试结果进行错误分析,查找出问题所在‌
‌4、问题复现‌:对发现的问题进行复现,并记录测试结果‌
‌5、问题修复‌:根据错误信息分析问题并复现结果,对问题进行修复‌
‌6、再次测试‌:对修复后的问题再次进行测试,直到全部通过测试为止‌

CTS测试的优势和应用场景

CTS测试的优势包括:
‌1、提高兼容性和稳定性‌:帮助手机厂商验证设备是否符合Android系统的要求和规范,提高设备的兼容性和稳定性‌
2、保证用户体验‌:确保设备的各项功能正常运行,提供良好的用户体验‌
3、可靠性高‌:CTS测试用例涵盖所有安卓系统的功能点和API,测试结果可靠性高‌

一、环境搭建‌:搭建CTS测试环境,包括操作系统、Java环境、ADB驱动、CTS测试工具等‌

操作系统如下:

台式机系统要求:
注意:CTS 支持 64 位 Linux 计算机。Windows 操作系统或 MacOS 不支持 CTS;

主机要求:
CTS 主机的最低要求是 32 GiB RAM 和 256 GiB 磁盘容量。这是为了适应 CTS 测试用例数量的增加以及 tradefed 中 Java 堆空间预留的增加。

Java环境:

适用于 Ubuntu 的 Java 开发套件
安装正确版本的 Java 开发套件 (JDK)。

对于 Android 11,请安装 OpenJDK11。
对于 Android 9 和 Android 10,请安装 OpenJDK9。
对于 Android 7.0、7.1、8.0 和 8.1,请安装 OpenJDK8。

Python 支持设置
按照安装说明为您的平台安装 virtualenv。

您可以通过调用 virtualenv -h 验证安装是否成功。

ADB驱动:

adb 和 AAPT2
注意:对于 CTS 8.0,请使用 1.0.39 以上版本的 adb。

运行 CTS 之前,请确保已安装最新版本的 Android 调试桥 (adb) 和 Android 资源打包工具 (AAPT2),并已将这两个工具的位置信息添加到计算机的系统路径中。

如需安装 adb 和 AAPT2,请从 Android Studio 的 SDK 管理器或从 sdkmanager 命令行工具下载最新的 Android SDK 平台工具和 Android SDK 构建工具

确保 adb 和 aapt2 位于您的系统路径下。以下命令假定您已将软件包归档下载到主目录中名为 android-sdk 的子目录:

export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>

CTS测试工具:
1、套件下载链接:兼容性测试套件下载  |  Android Open Source Project

2、下载指定ARM套件和medai文件,如下图:

3、下载 Mainline 相关 CTS 文件(可选)

首次运行 CTS 版本时,CTS 会动态下载一些 Mainline 相关的 CTS 文件,这会使运行时间至少增加 10 分钟,具体取决于您的网络速度。

如要省去上述 CTS 运行时间,您可以按照以下说明,在运行 CTS 版本之前下载 Mainline 相关的 CTS 文件:

通过运行以下命令,获取设备上的 Android API 级别:

adb shell getprop ro.build.version.sdk


按照 download_mcts.sh 脚本中的说明下载 Mainline CTS 文件。

下载过程至少需要 10 分钟,具体取决于您的网络速度。

4、存储空间要求
CTS 媒体压力测试要求将视频剪辑存放在外部存储空间 (/sdcard) 中。
以下是按最大视频播放分辨率列出的存储空间要求:
480x360:98 MB
720x480:193 MB
1280x720: 606 MB
1920x1080:1863 MB

5、屏幕和存储空间
没有嵌入式屏幕的设备一律需要连接到屏幕。
如果设备具有存储卡插槽,请插入空的 SD 卡。请使用支持超高速 (UHS) 总线且具有 SDHC 或 SDXC 容量的 SD 卡,或速度不低于 Class 10 的 SD 卡,以确保设备能通过 CTS 测试。

警告:CTS 可能会修改/清除插入设备的 SD 卡上的数据。
如果设备有 SIM 卡插槽,请在每个插槽中插入一张已激活的 SIM 卡。如果设备支持短信,必须填充每个 SIM 卡的号码字段。对于搭载 Android 12 或更高版本的设备,所有 SIM 卡都必须支持存储缩位拨号 (ADN) 号码。具有电信专用文件 (DFTelecom) 的 GSM 和 USIM 卡满足此要求。

警告:CTS 可能会修改/清除插入设备的 SIM 卡上的数据。

6、平台设置:

1)Factory data reset the device: Settings > Backup & reset > Factory data reset.(Warning: This reset erases all user data from the device.)
2)Set your device's language to English (United States): Settings > Language & input > Language.

3)If the device supports customizing default fonts, set the default sans-serif font family to Roboto (the default sans-serif font family used in AOSP builds).

4)Turn on the location setting if there's a GPS or Wi-Fi/cellular network feature on the device: Settings > Location > On.

5)Connect to a Wi-Fi network that supports IPv6, can treat the DUT as an isolated client (see Physical environment above), and has an internet connection: Settings > Wi-Fi.

6)Make sure that no lock pattern or password is set on the device: Settings > Security > Screen lock > None.

7)Enable USB debugging on your device: Settings > Developer options > USB debugging.

Note: On Android 4.2 or higher, Developer options is hidden by default. To make it available, go to Settings > About phone and tap Build number seven times. Return to the previous screen to find Developer options. See Set up a device for development for additional details.
8)Set the time to 12-hour format: Settings > Date & time > Use 24-hour format > Off.

9)Set the device to stay awake: Settings > Developer options > Stay Awake > On.

10)In Android 5.x and 4.4.x only, set the device to allow mock locations: Settings > Developer options > Allow mock locations > On.

11)In Android 4.2 or higher, turn off USB app verification: Settings > Developer options > Verify apps over USB > Off.

12)In Android 13 or higher, set the device to allow mock modem: Settings > Developer options > Allow Mock Modem > On.

Note: On Android 13 or higher, Telephony added some CTS tests which use a mock modem instead of a real modem. This setting needs to be enabled on user builds to pass the CTS tests need the mock modem.
13)Launch the browser and dismiss any startup/setup screen.

14)Connect the desktop machine that will be used to test the device with a USB cable.

Note: When you connect a device running Android 4.2.2 or higher to your computer, the system shows a dialog asking whether to accept an RSA key that allows debugging through this computer. Select Allow USB debugging.
15)Before running CTS, set Roboto2 as the sans-serif font using a user accessible affordance (not hidden) setting.

二、测试执行‌:执行已有的CTS测试用例并记录测试结果‌;

整测先拷贝media到测试设备,有2种方式:
1、拷贝media文件,把android-cts-media-1.5文件拷贝到pc本地路径,在tmp目录下创建一个文件命名为:android-cts-media,如下:

拷贝命令:sudo cp -r  android-cts-media-1.5  /tmp/android-cts-media/

2、逐个板子拷贝,如下图:

image2020-3-25_19-3-46.png

3、前面的所有步骤都已完成后,则进入脚本测试,执行测试;

从解压缩 CTS 软件包所在的文件夹中启动 CTS 控制台 cts-tradefed 脚本。在主机的命令行 shell 上运行以下命令:

./android-cts/tools/cts-tradefed

运行默认测试计划(包含所有测试软件包):

cts-tradefed > run cts

如果想要缩短测试执行时间,您可以在多个设备上将测试分片。分片要求主机至少连接两台设备,但为了提高效率,建议使用六台或以上的设备。在多台设备上进行分片时:

对于 Android 9 及更高版本,请使用命令选项

--shard-count number_of_shards
如下列举单测模块结果:

4、等测试完成后,需要对结果进行retry, retry如下:

5、测试结果是存放在各个工具的result和logs文件夹下,是会自动保存的,如下:

6、如果要查看结果,则进入result文件下,找到:test_result_failures_suite.html文件打开,就能查看到所有的Fail项;

7、打开test_result_failures_suite.html文件后,可以查看到所有Fail,如下:

8、其他测试比如:gts/vts/sts/tvts都是相同原理,区别是测试套件和命令不同;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值