Complete Automotive Tests in a Box (CATBox) 是開放原始碼套件,可提供所需的架構和工具,讓您以最少的設定,簡化並執行汽車測試。CATBox 可擴充,且與您用於測試及驗證 Android Automotive OS (AAOS) 實作項目的工具、基礎架構和測試相容。因此,您可以向市集提供高品質的產品。
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 套件,請按照下列步驟操作:
根據裝置架構選取裝置目標,然後執行下列指令:
lunch <target>
如要建構 CATBox,請執行下列指令:
make catbox
這個指令會在
/out/host/linux-x86/catbox
目錄中建立android-catbox.zip
檔案,以便執行測試。
設定環境
執行 CATBox 測試所需的環境設定與設定 CTS 類似。如要設定環境,請完成下列各項工作:
安裝 ADB 和 AAPT。
安裝 JDK。請參閱 Ubuntu 適用的 Java Development Kit。
提高記憶體上限。請參閱「儲存空間需求」。
設定及執行 CATBox
使用 Tradefed 測試架構,在 Android 裝置上執行測試。設定 CATBox 前,請參閱「Trade Federation 總覽」。
如要設定及執行 CATBox,請參閱以下各節。
設定裝置
在執行測試計畫前,請完成下列步驟設定裝置:
請確認您已安裝最新版本的 Android Debug Bridge (adb) 和 Android 資產封裝工具 (AAPT),並將這些工具的位置新增至機器的系統路徑。詳情請參閱「ADB 和 AAPT」。
連接至少一部裝置,並按照下列步驟準備測試裝置 (DUT):
如要將車輛裝置恢復原廠設定,請依序前往「設定」>「系統」>「重設選項」>「清除所有資料」。
等待裝置自動重新啟動。
請確認已啟用 ADB。如要確認裝置可用,請執行下列指令:
adb devices
如要啟用 root,請執行下列指令:
adb -s DEVICE_SERIAL root
將
DEVICE_SERIAL
替換為汽車裝置的序號 ID。連線至 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 |