Complete Automotive Tests in a Box

Complete Automotive Tests in a Box (CATBox) 是一个开源软件包,提供了一些框架和工具,可帮助您通过尽可能少的配置来简化和执行汽车测试。CATBox 可扩展,并且与您测试和验证 Android Automotive OS (AAOS) 实现所用的工具、基础架构和测试都兼容。因此,它可以帮助您向市场提供高品质产品。

CATBox 设计和实现

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 软件包,请执行以下操作:

  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 替换为车载设备的序列号。

    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 替换为车载设备的序列号。如果您有多个设备连接到宿主机,请使用 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 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