车载完整测试套件

车载完整测试套件 (CATBox) 是一个开源软件包,提供精简和执行汽车测试所需的框架和工具,且只需极少的配置。CATBox 具有可伸缩性,并且与您用来测试和验证 Android Automotive OS (AAOS) 实现的工具、基础架构和测试兼容。因此,您可以向市场提供高品质的产品。

CATBox 设计和实现

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 软件包

  1. 根据设备架构选择设备目标,然后运行以下命令

    lunch <target>
  2. 要构建 CATBox,请运行以下命令

    make catbox

    此命令会在 /out/host/linux-x86/catbox 目录中创建 android-catbox.zip 文件,然后可以使用该文件运行测试。

设置环境

执行 CATBox 测试所需的环境设置与设置 CTS 类似。要设置环境,请完成以下各项任务

设置和运行 CATBox

使用 Tradefed 测试框架在 Android 设备上运行测试。在设置 CATBox 之前,请参阅Trade Federation 概览

要设置和运行 CATBox,请参阅以下部分。

设置设备

在运行测试计划之前,请完成以下步骤来设置您的设备

  1. 确保您已安装最新版本的 Android 调试桥 (adb)Android 资源打包工具 (AAPT),并将这些工具的位置添加到您机器的系统路径中。有关详情,请参阅ADB 和 AAPT

  2. 连接至少一个设备,并按如下方式准备被测设备 (DUT)

    1. 要将汽车设备恢复出厂设置,请转到设置 > 系统 > 恢复选项 > 清除所有数据

    2. 等待设备自动重启。

    3. 确保已启用 adb。要确认设备可用,请运行以下命令

      adb devices
    4. 要启用 root,请运行以下命令

      adb -s DEVICE_SERIAL root

      DEVICE_SERIAL 替换为汽车设备的序列号 ID。

    5. 连接到 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