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测试工具等
操作系统如下: 台式机系统要求: 主机要求: |
---|
Java环境: 适用于 Ubuntu 的 Java 开发套件 对于 Android 11,请安装 OpenJDK11。 Python 支持设置 您可以通过调用 virtualenv -h 验证安装是否成功。 |
---|
ADB驱动: adb 和 AAPT2 运行 CTS 之前,请确保已安装最新版本的 Android 调试桥 (adb) 和 Android 资源打包工具 (AAPT2),并已将这两个工具的位置信息添加到计算机的系统路径中。 如需安装 adb 和 AAPT2,请从 Android Studio 的 SDK 管理器或从 sdkmanager 命令行工具下载最新的 Android SDK 平台工具和 Android SDK 构建工具。 确保
|
---|
CTS测试工具: 2、下载指定ARM套件和medai文件,如下图: 3、下载 Mainline 相关 CTS 文件(可选) 首次运行 CTS 版本时,CTS 会动态下载一些 Mainline 相关的 CTS 文件,这会使运行时间至少增加 10 分钟,具体取决于您的网络速度。 如要省去上述 CTS 运行时间,您可以按照以下说明,在运行 CTS 版本之前下载 Mainline 相关的 CTS 文件: 通过运行以下命令,获取设备上的 Android API 级别: adb shell getprop ro.build.version.sdk
下载过程至少需要 10 分钟,具体取决于您的网络速度。 4、存储空间要求 5、屏幕和存储空间 警告:CTS 可能会修改/清除插入设备的 SD 卡上的数据。 警告: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.) 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. 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. 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. |
---|
二、测试执行:执行已有的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、逐个板子拷贝,如下图:
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都是相同原理,区别是测试套件和命令不同;