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_account_setting
catbox_functional_appgrid
catbox_functional_appinfo_setting_ui_elements
catbox_functional_appinfo_settings
catbox_functional_bluetooth_sms

catbox_functional_bluetooth_dialer
catbox_functional_bluetooth_connectivity
catbox_functional_bluetooth_media
catbox_functional_bluetooth_uxrestriction
catbox_functional_bluetooth_pairing

catbox-functional-bluetooth-audio
catbox_functional_bluetooth_palette
catbox_functional_brightness_palette
catbox_functional_bt_stress
catbox_functional_date_time_settings

catbox_functional_display_setting
catbox_functional_driving_optimized_apps
catbox_functional_enable_developers_option
catbox_functional_guest_microphone
catbox_functional_homescreen

catbox_functional_lockscreen
catbox_functional_maps_microphone_permission
catbox_functional_maps_restricted_searchbar
catbox_functional_maps
catbox_functional_microphone_recent_apps
catbox_functional_microphone_settings
catbox_functional_multiuser_microphone
catbox_functional_multiuser_system_user
catbox_functional_multiusercatbox_functional_navigationbar
catbox_functional_network_palette
catbox_functional_network_settings

catbox_functional_notifications
catbox_functional_privacy_app_permissions
catbox_functional_privacy_decision_options_message
catbox_functional_privacy_permission_manager
catbox_functional_privacy_setting_ui_elements

catbox_functional_privacy_settings_no_user_login
catbox_functional_privacy_settings_user_logged_in
catbox_functional_profile_icon
catbox_functional_profiles_icon_list
catbox_functional_security_settings

catbox_functional_settings_location
catbox_functional_settings
catbox_functional_sound_settings
catbox_functional_status_bar
catbox_functional_storage_setting

catbox_functional_system_settings
catbox_functional_uxrestriction_app_screen
catbox_functional_uxrestriction_facet_bar
catbox_functional_uxrestriction_gas_appgrid
catbox_functional_uxrestriction
性能测试计划
catbox-performance-cold-app-start-up-settings
catbox-performance-hot-app-start-up-settings
catbox-performance-jank-settings
catbox-performance-cold-app-start-up-dialer

catbox-performance-hot-app-start-up-dialer
catbox-performance-jank-contact-list
catbox-performance-jank-notifications
catbox-performance-jank-appgrid
catbox-performance-cold-app-start-up-mediacenter
catbox-performance-hot-app-start-up-mediacenter
catbox-performance-create-and-switch-to-new-guest
catbox-performance-create-and-switch-to-new-user

catbox-performance-create-and-switch-to-precreated-guest
catbox-performance-create-and-switch-to-precreated-user
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