在一個盒子裡完成汽車測試

Complete Automotive Tests in a Box (CATBox) 是一個開源軟體包,提供以最少的配置簡化和執行汽車測試所需的框架和工具。 CATBox 具有可擴充性,並且與您用來測試和驗證 Android 汽車作業系統 (AAOS) 實施的工具、基礎設施和測試相容。因此,您可以向市場提供高品質的產品。

CATBox的設計與實現

CATBox 測試套件提供了在汽車目標設備上以及使用配套設備時執行功能和性能測試所需的工具、框架和測試。

下圖展示了 CATBox 套件的高級設計。

CATBox

圖 1. CATBox 封裝

貿易聯邦

Tradefed 是一個開源持續測試框架,用於在 Android 裝置上執行測試。有關詳細信息,請參閱貿易聯盟概述

汽車測試框架

CATBox 基於一個名為Spectatio的汽車測試框架,該框架提供用於在汽車設備上測試各種應用程式的 API。它建立在UI Automator之上,這是一個開源測試框架,提供了一組 API 來建立與使用者和系統應用程式互動的 UI 測試。

CATBox 測試套件下載

安卓14

Android Automotive 14 是代號為 U 的開發里程碑版本。使用以下連結下載適用於 Android 14 的 CATBox 測試套件:

安卓12

Android 12 是代號為 S 的開發里程碑版本。使用以下連結下載適用於 Android 12 的 CATBox 測試套件:

安卓11

Android 11 是代號為 R 的開發里程碑版本。使用以下連結下載適用於 Android 11 的 CATBox 測試套件:

建構CATBox

一旦 Android AOSP 程式碼在本地工作站上可用,請使用catbox建置命令。

要在本機上建立 CATBox 套件:

  1. 根據設備架構選擇Device Target並執行以下命令:

    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系統 UI 測試。
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 Media Center 的冷應用程式啟動效能測試。
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 Media Center 的熱門應用程式啟動效能測試。
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