在 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 的 Automotive 測試架構為基礎,提供 API,方便您在車輛裝置上測試各種應用程式。Espresso 是以開放原始碼測試架構 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 Asset Packaging Tool (AAPT),並將這些工具的位置新增至電腦的系統路徑。詳情請參閱「ADB 和 AAPT」。

  2. 連線至少一部裝置,並按照下列步驟準備測試裝置 (DUT):

    1. 如要將車用裝置恢復原廠設定,請依序前往「設定」>「系統」>「重設選項」>「清除所有資料」

    2. 等待裝置自動重新啟動。

    3. 確認已啟用 adb。如要確認裝置是否可用,請執行下列指令:

      adb devices
    4. 如要啟用根層級,請執行下列指令:

      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 以藍牙機車為基礎的功能測試。
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 媒體中心的應用程式冷啟動效能測試。
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