이 섹션에서는 Tradefed의 내부 요소를 소개하고 내부 요소 간의 관계를 설명합니다. 자세한 내용은 하위 페이지 링크를 참고하세요.
테스트 구성
Tradefed의 테스트 구성은 XML 형식으로 설명되어 있습니다. 구성의 구조를 이해하는 것이 테스트 실행 및 맞춤설정의 핵심입니다.
TF 구성의 구조
전역 TF 구성
전역 구성은 Tradefed가 TF_GLOBAL_CONFIG
환경 변수를 통해 시작되면 로드되는 특수한 Tradefed XML 구성입니다. 이 구성은 전반적인 하네스 동작에 영향을 미치게 될 Tradefed 인스턴스 범위와 관련된 객체를 로드합니다.
키 저장소
키 저장소를 사용하면 키 저장소에서 유입되는 tradefed에 명령줄 옵션을 삽입하여 명령줄에서 직접 값을 참조하는 상황을 피할 수 있습니다. 이는 키 저장소에서 직접 비밀번호를 가져와 명령줄에서 비밀번호를 숨기는 데 사용할 수 있습니다.
기기 관리도구
기기 관리도구는 Tradefed에서 실행 중인 인스턴스의 기기 상태를 계속해서 추적하는 역할을 합니다. 할당 상태 및 온라인 상태와 같은 측면이 모니터링됩니다.
테스트 명령어 스케줄러
Tradefed의 테스트 명령어 스케줄러는 실행할 명령어를 취하여 기기에 연결하고 테스트 호출을 시작합니다.
빌드 제공업체
빌드 제공업체는 모든 테스트 호출의 첫 번째 단계이며 테스트를 설정하고 실행하는 데 필요한 리소스를 다운로드합니다(빌드 이미지, 테스트 APK 등). 또한 테스트에 전달될 BuildInfo
객체에서 이를 참조합니다. 로컬에서 제공되는 리소스는 BuildInfo
객체에도 링크할 수 있습니다.
타겟 준비자 및 클리너
타겟 준비자는 테스트 중인 기기를 특정 상태로 구성하기 위해 실행할 수 있는 선택적 작업을 제공합니다. 기기를 플래시하거나 특정 속성을 설정하거나 Wi-Fi에 연결하는 등의 작업을 예로 들 수 있습니다.
테스트 실행자
Tradefed의 테스트 실행기는 실제 테스트 실행을 담당하는 객체를 의미합니다. 테스트 실행기마다 각각 다른 방식으로 테스트 실행을 구동합니다. 예를 들어 계측 테스트 실행기는 JUnit 테스트 실행기와 매우 다릅니다.
결과 보고자
Tradefed의 결과 보고자는 결과를 특정 도착지로 전송하는 객체를 의미합니다. 일반적으로 각 구현은 여러 결과 백엔드에 특화되어 있습니다. 또한 결과 보고자는 Tradefed 결과 형식을 도착지 형식으로 변환하는 역할을 합니다.
이와 같은 유연한 설계를 통해 모든 테스트를 원하는 결과 도착지에 보고하고 더 많은 테스트를 격리된 방식으로 추가할 수 있습니다.
측정항목 수집기
측정항목 수집기는 테스트 실행과 직각을 이루는 Tradefed의 특수 객체이며 테스트 수명 주기의 여러 시점(예: 테스트 시작, 테스트 종료)에서 정보를 수집할 수 있게 해줍니다. 수집기는 테스트 자체에서 분리되므로 테스트 자체를 변경하지 않고도 시점을 전환하거나 추가하거나 제거할 수 있습니다.
호스트 전체 설정
이 섹션에서는 Tradefed 인스턴트의 실행 전체에 적용 가능한 설정을 설명합니다. 이러한 옵션은 다른 환경(예: 제한된 네트워크에 있는 경우)에 적응할 수 있도록 하네스 전체의 동작에 영향을 미칩니다.
추가 기능
다음 섹션에서는 Tradefed 객체가 아닌 Tradefed의 일반적인 용도를 설명합니다.
Tradefed 샤딩
테스트 자료가 너무 크거나 실행 시간이 너무 길어지면 여러 기기에 걸쳐 자료를 분할할 수 있습니다. Google에서는 이를 샤딩이라고 부릅니다. 이 섹션에서는 샤딩의 원리와 구성 방법을 설명합니다.
SL4A 사용
Tradefed는 Android, SL4A의 스크립팅 계층을 지원합니다. 이는 플랫폼과 상관없는 방식으로 Android API를 호출하기 위한 자동화 도구 모음입니다.
동적 @option 다운로드
경우에 따라서는 테스트나 특정 작업에 필요한 파일이 로컬에서 제공되지 않을 수도 있습니다. 이 기능을 사용하면 Tradefed는 빌드 제공업체를 통하지 않고도 원격 위치에서 이러한 파일을 가져올 수 있습니다.