在 Box 中完成 Automotive 測試

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 來建構與使用者和系統應用程式互動的 UI 測試。

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 Debug Bridge (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 以 Bluetooth 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 Media Center 功能測試。
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 媒體中心的應用程式冷啟動效能測試。
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