Complete Automotive Tests in a Box (CATBox) 是一个开源软件包,提供了一些框架和工具,可帮助您通过尽可能少的配置来简化和执行汽车测试。CATBox 可扩展,并且与您测试和验证 Android Automotive OS (AAOS) 实现所用的工具、基础架构和测试都兼容。因此,它可以帮助您向市场提供高品质产品。
CATBox 设计和实现
CATBox 测试套件提供了所需的工具、框架和测试,以便在车载目标设备上以及在使用配套设备期间执行功能和性能测试。
下图展示了 CATBox 软件包的概要设计。
 
 
图 1. CATBox 软件包
Tradefed
Tradefed 是一个开源的持续测试框架,用于在 Android 设备上执行测试。如需了解详情,请参阅 Trade Federation 概览。
汽车测试框架
CATBox 基于名为 Spectatio 的汽车测试框架,该框架提供了在车载设备上测试各种应用时所需的 API。它基于开源测试框架 UI Automator 构建,该框架提供了一组 API,这些 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替换为车载设备的序列号。
- 连接到 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 替换为车载设备的序列号。如果您有多个设备连接到宿主机,请使用 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 | 基于蓝牙踏板摩托车的功能测试。 | 
| 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 | 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 BTDiscoveryTestCATBox 会安装 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 | 
