Trade Federation은 Android 기기에서 테스트를 실행하기 위한 연속 테스트 프레임워크입니다. CTS(호환성 테스트 모음)를 실행하려면 Trade Federation 개요에서 Tradefed 테스트 프레임워크 설명을 먼저 읽어보세요.
테스트 계획을 실행하는 방법은 다음과 같습니다.
- Android 기기 설정에 따라 DUT(테스트 대상 기기)를 설정합니다.
- 출시된 CTS 빌드를 Linux 호스트 컴퓨터로 다운로드하고 호스트 위치에 빌드 압축을 풉니다.
- 기기를 하나 이상 연결합니다. DUT를 준비하려면 다음과 같이 하세요.
- 홈 버튼을 눌러 기기를 홈 화면에 설정합니다.
- 다른 작업에서는 DUT를 사용하면 안 됩니다.
- 센서 활동을 방지하기 위해 DUT를 고정된 위치에 둡니다.
- 초점을 맞출 수 있는 대상에 기기 카메라를 향하게 합니다.
- CTS가 실행 중일 때는 기기의 키를 누르면 안 됩니다. 키를 누르거나 DUT 화면을 터치하면 실행 중인 테스트에 지장을 주고 결국 테스트가 실패할 수 있습니다.
- CTS 패키지 압축을 푼 폴더에서 CTS 콘솔 cts-tradefed 스크립트를 실행합니다. 호스트의 명령줄 셸에서 다음을 실행합니다.
./android-cts/tools/cts-tradefed
- 모든 테스트 패키지가 포함된 기본 테스트 계획을 실행합니다.
cts-tradefed > run cts
- 테스트 실행 시간을 개선하기 위해 여러 기기에서 테스트를 샤딩할 수 있습니다. 샤딩하려면 호스트에 2개 이상의 기기를 연결해야 하지만 효율성을 위해 6개 이상의 기기를 연결하는 것이 좋습니다. 2개 이상의 기기를 샤딩하는 경우 다음을 진행합니다.
- Android 9 이상에서는 다음 명령어 옵션을 사용합니다.
--shard-count number_of_shards
- Android 8.1 이하에서는 다음 명령어 옵션을 사용합니다.
--shards number_of_shards
- Android 9 이상에서는 다음 명령어 옵션을 사용합니다.
- 테스트 모음을 모두 실행하지는 않으려면 다음 명령줄에서 원하는 CTS 계획만 실행하면 됩니다.
run cts --plan test_plan_name
테스트 계획 이름을 찾는 방법은 다음과 같습니다.
- Android 7.0 이상에서 테스트 모듈 목록을 보려면 다음을 입력합니다.
list modules
- Android 6.0 이하에서 저장소의 테스트 계획 목록을 보려면 다음을 입력합니다.
list plans
- Android 6.0 이하에서 저장소의 테스트 패키지 목록을 보려면 다음을 입력합니다.
list packages
- Android 7.0 이상에서 테스트 모듈 목록을 보려면 다음을 입력합니다.
- CTS 버전에 따른 추가 명령어 옵션에 관한 자세한 내용은 아래 또는 Tradefed 콘솔의 '전체 도움말'에 나와 있는 콘솔 명령어 참조를 확인하세요.
- 테스트 실행 시간을 개선하기 위해 여러 기기에서 테스트를 샤딩할 수 있습니다. 샤딩하려면 호스트에 2개 이상의 기기를 연결해야 하지만 효율성을 위해 6개 이상의 기기를 연결하는 것이 좋습니다. 2개 이상의 기기를 샤딩하는 경우 다음을 진행합니다.
- 모든 테스트 모듈이 완료되고 마지막 두 건의 재시도 세션에서 테스트 실패 횟수가 동일할 때까지 재시도 세션을 여러 번 실행합니다.
- Android 9 이상에서는 다음을 사용합니다.
run retry --retry session_number --shard-count number_of_shards
- Android 7.0~8.1에서는 다음을 사용합니다.
run cts --retry session_number --shards number_of_shards
- CTS 버전에 따른 추가 재시도 명령어 옵션의 자세한 내용은 아래 CTS v2 콘솔 사용 섹션을 참조하세요.
- CTS 재시도와 관련한 구현 세부정보를 알아보려면 Trade Federation 모음 재시도를 참조하세요.
- Android 9 이상에서는 다음을 사용합니다.
- 콘솔에 보고된 테스트 진행 상황과 결과를 봅니다.
CTS v2 콘솔 사용
Android 7.0 이상에서는 CTS v2를 사용합니다.
계획 선택
사용 가능한 테스트 계획은 다음과 같습니다.
- cts - 기존 CTS 설치에서 CTS를 실행합니다.
- cts-camera - 기존 CTS 설치에서 CTS 카메라를 실행합니다.
- cts-java - 기존 CTS 설치에서 핵심 자바 테스트를 실행합니다.
- cts-pdk - PDK 퓨전 빌드의 유효성 검사에 유용한 테스트를 실행합니다.
- everything - 호환성 모음의 공통 구성입니다.
사용 가능한 기타 구성은 다음과 같습니다.
- basic-reporters - 기본 CTS 리포터의 구성입니다.
- collect-tests-only - 기존 CTS 설치에서 CTS를 실행합니다.
- common-compatibility-config - 호환성 모음의 공통 구성입니다.
- cts-filtered-sample - 호환성 모음의 공통 구성입니다.
- cts-known-failures - CTS 알려진 오류가 있는 구성입니다.
- cts-preconditions - CTS 선조건 구성입니다.
- host - 기존 기기에서 호스트 기반의 단일 테스트를 실행합니다.
- instrument - 기존 기기에서 단일 Android 계측 테스트를 실행합니다.
- native-benchmark - 기존 기기에서 네이티브 스트레스 테스트를 실행합니다.
- native-stress - 기존 기기에서 네이티브 스트레스 테스트를 실행합니다.
- recharge - 기기가 거의 방전될 때까지 기다리고 방전된 기기를 충전하는 가짜 테스트입니다.
- testdef - 기존 기기에서 test_def.xml 파일에 포함된 테스트를 실행합니다.
- util/wifi - 기기에 Wi-Fi를 구성하기 위한 유틸리티 구성입니다.
- util/wipe - 기기에서 사용자 데이터를 완전히 삭제합니다.
위 모든 계획과 구성은 run cts
명령어로 실행할 수 있습니다.
CTS v2 콘솔 명령어 참조
표 1. 이 표에는 다양한 용도로 사용되는 CTS V2 콘솔 명령어가 요약되어 있습니다.
호스트 | 설명 |
---|---|
help |
흔히 사용되는 명령어 요약 표시 |
help all |
사용 가능한 명령어의 전체 목록 표시 |
version |
버전 표시 |
exit |
정상적으로 CTS 콘솔 종료. 현재 실행 중인 모든 테스트가 완료되면 콘솔이 닫힙니다. |
실행 | 설명 |
run cts |
Android 10에서는 기본 CTS 계획과 CTS-Instant를 함께 실행합니다. 즉 전체 CTS를 호출합니다. Android 9 이하에서는 기본 CTS 계획만 실행합니다. 기기 유효성 검사에서는 선조건을 포함하여 이 포괄적 옵션을 사용합니다. 포함 항목에 관해서는 cts.xml을 참조하세요. CTS 콘솔은 테스트가 진행되는 동안 다른 명령어를 수신할 수 있습니다. 연결된 기기가 없는 경우 CTS 데스크톱 컴퓨터 또는 호스트는 기기가 연결될 때까지 대기한 다음 테스트를 시작합니다. 두 개 이상의 기기가 연결되면 CTS 호스트는 자동으로 기기를 한 개 선택합니다. |
run cts-instant |
Android 9에서는 기본 CTS-Instant 계획을 실행합니다. |
run cts --module-parameter INSTANT_APP |
Android 10에서는 기본 CTS-Instant 계획을 실행합니다. |
run cts --module-parameter INSTANT_APP --module/-m test_module_name |
Android 10에서는 지정된 CTS-Instant 테스트 모듈을 실행합니다. |
run retry |
Android 9 이상에만 해당됩니다. 이전 세션에서 실패했거나 실행되지 않은 모든 테스트를 재시도합니다. 예를 들어 |
--device-token |
Android 8.1 이하 버전에 해당됩니다. 지정된 기기에 지정된 토큰을 갖도록 명시합니다. 예를 들어 |
--enable-token-sharding |
Android 10에만 해당됩니다. 관련 SIM 유형이 필요한 테스트에 자동으로 매칭합니다. SIM 관련 테스트 사례를 실행할 때 기기 일련번호를 제공할 필요가 없습니다. 지원되는 SIM: |
run cts-dev |
기본 CTS 계획을 실행(즉, 전체 CTS 호출)하지만 새 테스트의 반복 개발의 실행 시간을 절약하기 위해 선조건을 건너뜁니다. 이 경우 CTS 콘솔은 테스트가 진행되는 동안 다른 명령어를 수신할 수 있습니다. 연결된 기기가 없는 경우 CTS 데스크톱 컴퓨터 또는 호스트는 기기가 연결될 때까지 대기한 다음 테스트를 시작합니다. 두 개 이상의 기기가 연결되면 CTS 호스트는 자동으로 기기를 한 개 선택합니다. |
run retry |
Android 9에 해당됩니다. 이전 세션에서 실패했거나 실행되지 않은 모든 테스트를 재시도합니다. 예를 들어
|
--plan test_plan_name |
지정된 테스트 계획을 실행합니다. |
--module/-m test_module_name [--module/-m test_module2...] |
지정된 테스트 모듈을 실행합니다. 예를 들어 run cts --module CtsGestureTestCases 는 동작 테스트 모듈을 실행합니다(run cts -m Gesture 로 줄여 부르기도 함).run cts -m Gesture --test android.gesture.cts.GestureTest#testGetStrokes 는 특정 패키지, 클래스 또는 테스트를 실행합니다. |
--subplan subplan_name |
지정된 하위 계획을 실행합니다. |
-- module/-m test_module_name -- test test_name |
지정된 모듈과 테스트를 실행합니다. 예를 들어 run cts -m Gesture --test android.gesture.cts.GestureTest#testGetStrokes 는 특정 패키지, 클래스 또는 테스트를 실행합니다. |
--retry |
이전 세션에서 실패했거나 실행되지 않은 모든 테스트를 재시도합니다.
list results 를 사용하여 세션 ID를 가져옵니다. |
--retry-type not_executed |
이전 세션에서 실행되지 않은 테스트만 재시도합니다.
list results 를 사용하여 세션 ID를 가져옵니다. |
--shards number_of_shards |
Android 8.1 이하 버전에 해당됩니다. 여러 기기에서 병렬로 실행되도록 CTS 실행을 지정된 개수의 독립 청크로 샤딩합니다. |
--shard-count number_of_shards |
Android 9에 해당됩니다. 여러 기기에서 병렬로 실행되도록 CTS 실행을 지정된 개수의 독립 청크로 샤딩합니다. |
--serial/-s deviceID |
특정 기기에서 CTS를 실행합니다. |
--include-filter module_name [--include-filter module2...] |
지정된 모듈에서만 실행합니다. |
--exclude-filter module_name [--exclude-filter module2...] |
지정된 모듈을 실행에서 제외합니다. |
--log-level-display/-l log_level |
STDOUT 에 표시된 최소 지정 로그 수준으로 실행합니다. 유효한 값: [VERBOSE ,
DEBUG , INFO , WARN ,
ERROR , ASSERT ]. |
--abi abi_name |
지정된 ABI, 32 또는 64에서 테스트가 실행되도록 강제합니다. 기본적으로 CTS는 기기가 지원하는 ABI마다 테스트를 한 번씩 실행합니다. |
--logcat , --bugreport , 및
--screenshoot-on-failure |
오류에 관한 더 많은 정보를 제공하고 진단에 도움이 될 수 있습니다. |
--device-token |
--device-token 1a2b3c4d:sim-card 와 같이 지정된 기기에 지정된 토큰을 갖도록 명시합니다. |
--skip-device-info |
기기에 관한 정보 수집을 건너뜁니다. |
--skip-preconditions |
새 테스트의 반복 개발의 실행 시간을 절약하기 위해 선조건을 건너뜁니다. 이 경우 미디어 파일 푸시 또는 Wi-Fi 연결 확인과 같은 기기 구성 확인 및 설정을 건너뛰게 됩니다. |
목록 | 설명 |
list modules |
저장소에서 사용 가능한 모든 테스트 모듈을 나열합니다. |
list plans 또는 list configs |
저장소에서 사용 가능한 모든 테스트 계획(구성)을 나열합니다. |
list subplans |
저장소에서 사용 가능한 모든 하위 계획을 나열합니다. |
list invocations |
현재 기기에서 실행 중인 'run' 명령어를 나열합니다. |
list commands |
대기열에서 현재 기기에 할당되기를 기다리는 모든 'run' 명령어를 나열합니다. |
list results |
현재 저장소에 저장된 CTS 결과를 나열합니다. |
list devices |
현재 연결된 기기와 기기 상태를 나열합니다.
'사용 가능한' 기기는 테스트 실행에 사용할 수 있는 작동 중이며 유휴 상태에 있는 기기를 말합니다.
'사용할 수 없는' 기기는 adb를 통해 표시되지만 adb 명령어에 응답하지 않아 테스트에 할당되지 않는 기기를 말합니다.
'할당된' 기기는 현재 테스트를 실행 중인 기기입니다. |
버리기 | 설명 |
dump logs |
실행 중인 모든 호출의 tradefed 로그를 버립니다. |
추가 | 설명 |
add subplan --name/-n subplan_name |
이전 세션에서 파생된 하위 계획을 생성합니다. 이 옵션은 테스트의 하위 집합을 실행하는 데 사용할 수 있는 하위 계획을 생성합니다. 유일한 필수 옵션은 --session 입니다. 다른 옵션은 선택사항이지만 포함할 경우 값 앞에 와야 합니다. --result-type 옵션은 반복 가능합니다. 예를 들어 add subplan --session 0 --result-type passed --result-type
failed 는 유효합니다. |
CTS v1 콘솔 사용
Android 6.0 이하인 경우 CTS v1 명령어 콘솔 참조를 확인하세요.