车载完整测试套件 (CATBox) 是一个开源软件包,提供精简和执行汽车测试所需的框架和工具,且只需极少的配置。CATBox 具有可伸缩性,并且与您用来测试和验证 Android Automotive OS (AAOS) 实现的工具、基础架构和测试兼容。因此,您可以向市场提供高品质的产品。
CATBox 设计和实现
CATBox 测试套件提供在车载目标设备上以及在使用配套设备时执行功能和性能测试所需的工具、框架和测试。
下图展示了 CATBox 软件包的高级设计。
图 1. CATBox 软件包
Tradefed
Tradefed 是一个开源持续测试框架,用于在 Android 设备上执行测试。有关详情,请参阅Trade Federation 概览。
汽车测试框架
CATBox 基于名为 Spectatio 的汽车测试框架,该框架提供用于测试汽车设备上各种应用的 API。它构建于 UI Automator(一个开源测试框架)之上,后者提供了一组 API,用于构建与用户和系统应用互动的界面测试。
CATBox 测试套件下载
Android 14
Android Automotive 14 是开发里程碑版本(代号为 U)的发布版本。使用以下链接下载 Android 14 的 CATBox 测试套件
Android 12
Android 12 是开发里程碑版本(代号为 S)的发布版本。使用以下链接下载 Android 12 的 CATBox 测试套件
Android 11
Android 11 是开发里程碑版本(代号为 R)的发布版本。使用以下链接下载 Android 11 的 CATBox 测试套件
构建 CATBox
当本地工作站上提供 Android AOSP 代码后,使用 catbox
构建命令。
要在本地构建 CATBox 软件包
根据设备架构选择设备目标,然后运行以下命令
lunch <target>
要构建 CATBox,请运行以下命令
make catbox
此命令会在
/out/host/linux-x86/catbox
目录中创建android-catbox.zip
文件,然后可以使用该文件运行测试。
设置环境
执行 CATBox 测试所需的环境设置与设置 CTS 类似。要设置环境,请完成以下各项任务
安装 ADB 和 AAPT。
安装 JDK。请参阅 Ubuntu 版 Java 开发工具包。
提高内存限制。请参阅存储空间要求。
设置和运行 CATBox
使用 Tradefed 测试框架在 Android 设备上运行测试。在设置 CATBox 之前,请参阅Trade Federation 概览。
要设置和运行 CATBox,请参阅以下部分。
设置设备
在运行测试计划之前,请完成以下步骤来设置您的设备
确保您已安装最新版本的 Android 调试桥 (adb) 和 Android 资源打包工具 (AAPT),并将这些工具的位置添加到您机器的系统路径中。有关详情,请参阅ADB 和 AAPT。
连接至少一个设备,并按如下方式准备被测设备 (DUT)
要将汽车设备恢复出厂设置,请转到设置 > 系统 > 恢复选项 > 清除所有数据。
等待设备自动重启。
确保已启用 adb。要确认设备可用,请运行以下命令
adb devices
要启用 root,请运行以下命令
adb -s DEVICE_SERIAL root
将
DEVICE_SERIAL
替换为汽车设备的序列号 ID。连接到 Wi-Fi。
解压 CATBox 软件包
设置设备后,解压 CATBox 软件包并转到解压后的文件夹
unzip android-catbox.zip
cd android-catbox
在 CATBox 中执行测试
要使用 CATBox 软件包中的测试计划运行 CATBox
./tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --serial DEVICE_SERIAL
将 DEVICE_SERIAL
替换为汽车设备的序列号 ID。如果您有多台设备连接到主机,请使用 DEVICE_SERIAL
来区分它们。将 TEST_PLAN_NAME
替换为您想运行的测试计划的名称。
要获取最完整的可用计划列表,请使用命令行
./tools/catbox-tradefed list plans | grep -i catbox
测试计划的类型
下表显示了可用的功能测试计划。
功能测试计划 | 说明 |
---|---|
catbox-functional |
功能测试。 |
catbox-functional-app-info-setting |
应用信息设置功能测试。 |
catbox-functional-admin-user-grant-permissions |
管理员用户授予权限功能测试。 |
catbox-functional-app-info-setting-ui-elements |
应用信息设置功能测试。 |
catbox-functional-appgrid |
应用网格功能测试。 |
catbox-functional-base |
功能测试列表。 |
catbox-functional-bluetooth-audio |
蓝牙音频功能测试。 |
catbox-functional-bluetooth-palette |
状态栏功能测试。 |
catbox-functional-bluetooth-tests |
使用 Mobly 的蓝牙测试。 |
catbox-functional-brightness-palette |
状态栏功能测试。 |
catbox-functional-btmoped |
基于蓝牙 Moped 的功能测试。 |
catbox-functional-date-time-setting |
日期和时间设置功能测试。 |
catbox-functional-dial |
拨号功能测试。 |
catbox-functional-display-setting |
显示设置功能测试。 |
catbox-functional-driving-optimized-apps |
用户体验限制功能测试。 |
catbox-functional-enable-developers-option |
启用开发者选项功能测试。 |
catbox-functional-home |
主屏幕功能测试。 |
catbox-functional-lock-screen |
锁屏功能测试。 |
catbox-functional-mediacenter |
媒体中心功能测试。 |
catbox-functional-microphone-recent-apps |
麦克风设置功能测试。 |
catbox-functional-microphone-setting |
麦克风设置功能测试。 |
catbox-functional-multiuser |
多用户功能测试。 |
catbox-functional-multiuser-system-user |
多用户功能测试。 |
catbox-functional-navigation-bar |
导航栏功能测试。 |
catbox-functional-network-palette |
状态栏功能测试。 |
catbox-functional-network-setting |
网络设置功能测试。 |
catbox-functional-notification |
通知功能测试。 |
catbox-functional-privacy-permission-manager |
隐私应用权限设置功能测试。 |
catbox-functional-privacy-setting |
麦克风设置功能测试。 |
catbox-functional-privacy-setting-ui-elements |
隐私设置功能测试。 |
catbox-functional-profile-icon |
个人资料图标栏功能测试。 |
catbox-functional-profiles-icon-list |
个人资料图标列表测试。 |
catbox-functional-security-setting |
安全设置功能测试。 |
catbox-functional-setting |
设置功能测试。 |
catbox-functional-settings-location |
设置位置信息测试。 |
catbox-functional-sound-setting |
声音设置功能测试。 |
catbox-functional-status-bar |
状态栏功能测试。 |
catbox-functional-storage-setting |
存储设置功能测试。 |
catbox-functional-system-setting |
系统设置功能测试。 |
catbox-functional-systemui |
系统界面测试。 |
catbox-functional-ux-restriction |
用户体验限制功能测试。 |
catbox-functional-ux-restriction-facet-bar |
用户体验限制功能测试。 |
下表列出了 CATBox 性能测试计划。
性能测试计划 | 说明 |
---|---|
catbox-performance-cold-app-start-up-dialer |
拨号器和电话应用的冷启动性能测试。 |
catbox-performance-cold-app-start-up-mediacenter |
媒体中心的冷启动性能测试。 |
catbox-performance-cold-app-start-up-settings |
设置应用的冷启动性能测试。 |
catbox-performance-create-and-switch-to-new-guest |
衡量切换到新访客的延迟时间。 |
catbox-performance-create-and-switch-to-new-user |
衡量切换到新的非管理员用户的延迟时间。 |
catbox-performance-hot-app-start-up-dialer |
拨号器和电话应用的热启动性能测试。 |
catbox-performance-hot-app-start-up-mediacenter |
媒体中心的热启动性能测试。 |
catbox-performance-hot-app-start-up-settings |
设置应用的热启动性能测试。 |
catbox-performance-jank-appgrid |
应用网格的性能测试。 |
catbox-performance-jank-contact-list |
联系人的性能测试。 |
catbox-performance-jank-media |
媒体的性能测试。 |
catbox-performance-jank-media-switch-playback |
媒体切换播放的性能测试。 |
catbox-performance-jank-notifications |
通知的性能测试。 |
catbox-performance-jank-settings |
设置的性能测试。 |
catbox-performance-switch-to-existing-user |
衡量切换到现有用户的延迟时间。 |
运行多设备主机端测试
多设备主机端测试的执行使用 CATBox 在一个会话中运行测试。例如,BTDiscoveryTest
make catbox
./tools/catbox-tradefed run commandAndExit catbox-functional-bluetooth-tests --{phone}serial <serial> --{auto}serial <serial> --mobly-host:mobly-par-file-name BTDiscoveryTest
CATBox 安装 apk
,然后在正确的 Python 执行环境中运行测试。
查看 CATBox 测试结果
功能和性能测试运行的结果保存在 android-catbox/results/latest
中。
结果类型 | 位置信息 |
---|---|
测试结果 | test_result.xml |
失败测试详情 | test_result_failures_suite.html |
性能指标结果 | /report-log-files/CatboxPerformanceTests.reportlog.json |
功能和性能测试运行 | /android-catbox/logs/latest |