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 12

Android 12 是代号为 S 的开发里程碑版本。使用以下链接即可下载适用于 Android 12 的 CATBox 测试套件:

Android 11

Android 11 是代号为 R 的开发里程碑版本。使用以下链接即可下载适用于 Android 11 的 CATBox 测试套件:

构建 CATBox

本地工作站中提供相应的 Android AOSP 代码后,您可以使用 catbox 构建命令。如需在本地构建 CATBox 软件包,请执行以下操作:

  1. 选择设备目标,然后运行以下命令:

    # Select Device Target Based on Device Architecture
    $ lunch <target>
    
  2. 如需构建 CATBox,请运行以下命令:

    # Build 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 权限,请运行以下命令:

      # Enable Root
      $ adb -s DEVICE_SERIAL root
      

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

    5. 连接到 Wi-Fi。

提取 CATBox 软件包

完成设备设置后,解压缩 CATBox 软件包,然后找到解压出来的文件夹:

# Extract the CATBox Package
$ unzip android-catbox.zip

# Navigate to extracted CATBox Package
$ 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-notification
catbox-functional-setting
catbox-functional-dial
catbox-functional-system-setting
catbox-functional-app-info-setting
catbox-functional-network-setting
catbox-functional-security-setting
catbox-functional-sound-setting
catbox-functional-date-time-setting
catbox-functional-appgrid
catbox-functional-home
catbox-functional-lock-screen
catbox-functional-navigation-bar
catbox-functional-ux-restriction
catbox-functional-bluetooth-audio
性能测试计划 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 测试结果

功能和性能测试的结果都将保存在 android-catbox/results/latest 文件夹中。

  • 如需了解测试结果,请参阅 test_result.xml
  • 如需详细了解失败的测试,请参阅 test_result_failures_suite.html
  • 如需了解性能指标结果,请参阅 report-log-files 目录中的 CatboxPerformanceTests.reportlog.json

功能和性能测试作业的日志都保存在路径 android-catbox/logs/latest 中。

部分测试(例如拨号测试、蓝牙音频测试和联系人列表卡顿测试)需要进行额外的设备设置。

拨号测试

拨号测试需要进行设备设置和获得运行时参数。如需设置设备,请执行以下操作:

  1. 通过蓝牙将移动设备连接到汽车的车机。
  2. 确保测试手机内含用于运行拨号测试的 SIM 卡,并且已连接到移动网络。
  3. 拨号测试会使用手机上存储的默认联系人。使用 contacts.vcf 加载手机上的联系人信息。
  4. COMPANION_SERIAL 替换为手机的序列号,然后运行以下命令:

    # Contacts can be loaded on the phone by pushing the contacts.vcf file on
    the phone and importing it in the Contacts application.
    
    OR
    
    # Importing contacts using adb.
    
    # Push contacts VCF file to phone
    
    $ adb -s COMPANION_SERIAL push <path-to-downloaded-contacts-vcf-file> /storage/emulated/0/Android/data/com.google.android.contacts/contacts.vcf
    
    # Grant Read Permissions
    
    $ adb -s COMPANION_SERIAL shell pm grant com.google.android.contacts
    android.permission.READ_EXTERNAL_STORAGE
    
    # Import contacts from the VCF file
    
    $ adb -s COMPANION_SERIAL shell am start-activity -W -t 'text/x-vcard' -d file:///storage/emulated/0/Android/data/com.google.android.contacts/contacts.vcf
    -a android.intent.action.VIEW com.google.android.contacts
    
    # Then accept the prompts on the UI to load the contacts.
    
运行时参数

拨号测试会使用长短不同的电话号码执行测试,还会使用联系人姓名和号码来进行搜索测试。请使用以下参数来提供这些信息:

Parameters for Large Phone Number:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:large-phone-number:=< 10 digit phone number>

Parameters for Small Phone Number:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:small-phone-number:=< 3 digit phone number>

Parameters for Search Contact Name:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:search-contact-name:=< some contact name stored on the phone >

Parameters for Search Contact Number:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:search-contact-number:=< contact number of the name provided in the search contact name >

蓝牙音频测试

如需设置设备以进行蓝牙音频测试,请执行以下操作:

  1. 确保手机上已安装 YouTube Music 应用并已登录帐号。如果没有,请安装该应用并登录帐号。
  2. 通过蓝牙手动将手机与车载设备配对。
  3. 将手机配对后,在手机上播放歌曲,然后开始执行该测试。

联系人列表卡顿测试

如需设置设备以进行联系人列表卡顿测试,请执行以下操作:

  1. 确保手机内含多个联系人,以便对列表中的联系人轮番进行测试,收集卡顿指标数据。
  2. 通过蓝牙手动将手机与车载设备配对。
  3. 将手机配对后,您便可以在设备上访问联系人。