CATBox(Complete Automotive Tests in a Box)는 오픈소스 패키지로, 최소한의 구성을 사용하여 자동차 테스트를 간소화하고 실행하는 데 필요한 프레임워크와 도구를 제공합니다. CATBox는 Android Automotive OS(AAOS) 구현을 테스트하고 검증하는 데 사용하는 도구, 인프라, 테스트와 호환되며 확장 가능합니다. 따라서 CATBox를 사용하면 고품질 제품을 시장에 제공할 수 있습니다.
CATBox 설계 및 구현
CATBox 테스트 모음은 호환 기기를 사용하는 동안 자동차 대상 기기에서 기능 및 성능 테스트를 실행하는 데 필요한 도구와 프레임워크, 테스트를 제공합니다.
다음 이미지는 CATBox 패키지의 설계를 개괄적으로 보여줍니다.
그림 1. CATBox 패키지
Tradefed
Tradefed는 Android 기기에서 테스트를 실행하는 데 사용되는 오픈소스 연속 테스트 프레임워크입니다. 자세한 내용은 Trade Federation 개요를 참고하세요.
Automotive 테스트 프레임워크
CATBox는 자동차 기기에서 다양한 앱을 테스트하기 위한 API를 제공하는 Spectatio라는 Automotive 테스트 프레임워크를 기반으로 합니다. 이 프레임워크는 UI Animator 오픈소스 테스트 프레임워크를 기반으로 빌드되었으며 사용자 및 시스템 애플리케이션과 상호작용하는 UI 테스트를 빌드하기 위한 API 모음을 제공합니다.
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 개발 키트를 참고하세요.
메모리 한도를 늘립니다. 저장용량 요구사항을 참고하세요.
CATBox 설정 및 실행
Tradefed 테스트 프레임워크를 사용하여 Android 기기에서 테스트를 실행합니다. CATBox를 설정하기 전에 Trade Federation 개요를 참고하세요.
CATBox를 설정하고 실행하려면 아래 섹션을 참고하세요.
기기 설정
테스트 계획을 실행하기 전에 다음 단계에 따라 기기를 설정합니다.
Android 디버그 브리지(adb)와 Android Asset Packaging Tool(AAPT) 모두 최신 버전이 설치되어 있고 도구의 위치가 컴퓨터의 시스템 경로에 추가되어 있는지 확인합니다. 자세한 내용은 adb 및 AAPT를 참고하세요.
하나 이상의 기기를 연결하고 다음과 같이 테스트 대상 기기(DUT)를 준비합니다.
자동차 기기를 초기화하려면 설정 > 시스템 > 재설정 옵션 > 모든 데이터 삭제로 이동합니다.
기기가 자동으로 다시 시작될 때까지 기다립니다.
adb가 사용 설정되어 있어야 합니다. 기기를 사용할 수 있는지 확인하려면 다음 명령어를 실행합니다.
adb devices
루트를 사용 설정하려면 다음 명령어를 실행합니다.
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 |
블루투스 모페드 기반 기능 테스트입니다. |
catbox-functional-date-time-setting |
날짜 및 시간 설정 기능 테스트입니다. |
catbox-functional-dial |
다이얼 기능 테스트입니다. |
catbox-functional-display-setting |
디스플레이 설정 기능 테스트입니다. |
catbox-functional-driving-optimized-apps |
UX 제한 기능 테스트입니다. |
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 |
UX 제한 기능 테스트입니다. |
catbox-functional-ux-restriction-facet-bar |
UX 제한 기능 테스트입니다. |
다음 표에는 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 |