CTS 기기 상호작용 도우미 모듈

Android 11 이상의 경우 CTS(호환성 테스트 모음) 기기 상호 작용 도우미 모듈을 사용하여 특정 CTS 테스트가 특정 기기의 UI(사용자 인터페이스)와 상호 작용하는 방식을 맞춤설정할 수 있습니다. 즉, Android CDD(호환성 정의 문서) 또는 API 문서에서 다루지 않는 UI 요소 교체와 같은 작업은 CTS를 계속 전달하면서 수행할 수 있습니다.

제품 개발 중에 Android UI를 사용자 지정하고 CTS를 전달해야 하는 OEM은 도우미 모듈을 구현할 수 있습니다. 기본 Android 구현을 사용하는 경우 추가 작업이 필요하지 않습니다.

도우미 모듈 구현

UI 사용자 지정 요구 사항

UI 요구 사항에 대해서는 CDD 또는 Mainline 모듈을 확인하십시오. 원하는 UI가 CDD 또는 Mainline 모듈에 포함되어 있으면 해당 UI를 사용자 지정할 수 없습니다.

원하는 UI와 상호작용하는 CTS 테스트가 도우미 프레임워크를 사용하지 않는 경우 해당 UI를 사용자 지정할 수 없습니다. UI를 변경하기 전에 테스트 소유자와 협력하여 테스트 모듈을 변환하십시오.

그렇지 않으면 UI를 사용자 정의할 수 있습니다.

구현 워크플로

  1. 특정 제품에 필요한 대로 UI를 사용자 정의합니다.
  2. 기존 AOSP 도우미 모듈을 UI와 상호 작용해야 하는 CTS 테스트 모듈의 하위 클래스로 지정합니다. 사용자 정의된 UI에 필요한 상호 작용을 적절하게 교체합니다. 교체는 변경 유형에 따라 다릅니다.
    • OEM 하위 클래스는 com.[oem].cts.helpers 와 같은 OEM 패키지에 있습니다.
    • 각 OEM 하위 클래스는 접두사가 Default 인 AOSP 구현과 구별되는 공통 접두사로 이름이 지정됩니다.
  3. 이러한 테스트 실행기 규칙에 따라 도우미를 APK에 빌드합니다.
    • Android.bp 는 포함된 패키지와 동일한 이름으로 android_test_helper_app 을 선언해야 합니다.
    • APK용 AndroidManifest.xml 은 이전 글머리 기호에서 선택한 클래스 접두사 값을 사용하여 interaction-helpers-prefix 라는 메타데이터 속성을 선언해야 합니다.
    • 앱은 cts-helpers-core , cts-helpers-interfacescom.android.cts.helpers.aosp 에 종속되어야 합니다. OEM 도우미가 모든 관련 인터페이스를 완전히 구현하는 경우 com.android.cts.helpers.aosp 는 선택 사항입니다.
  4. APK 이름을 포함하도록 기기 이미지의 ro.vendor.cts_interaction_helper_packages 속성을 설정합니다. 여러 APK에서 도우미 구현을 분리해야 하는 경우 이 속성에 콜론으로 구분된 패키지 목록이 포함될 수 있습니다.
  5. Tradefed for CTS를 실행할 때 testcases 디렉토리에서 APK를 사용할 수 있는지 확인하십시오. 필요한 경우 logcat 메시지를 검사하여 예상되는 도우미 구현 클래스가 선택되었는지 확인합니다.
  6. 선택 사항이지만 적극 권장합니다. 도우미 구현을 AOSP에 제출하거나 타사 테스트에 사용할 수 있도록 합니다.

도우미 구현 예

예를 들어, CtsPrintTestCasesICtsPrintHelper 에 정의된 인터페이스를 가진 도우미를 기대합니다. AOSP 구현은 com.android.cts.helpers.aosp.DefaultCtsPrintHelper 라고 합니다.

인쇄 UI를 사용자 정의하는 경우 DefaultCtsPrintHelper 의 하위 클래스 com.oem.cts.helpers.OemCtsPrintHelper 를 생성할 수 있습니다. Android.bpandroid_test_helper_app 이름은 com.oem.cts.helperscom.oem.cts.helpers.apk 를 생성하고 AndroidManifest.xml 에서 interaction-helpers-prefixOem 으로 선언합니다.

장치 속성 ro.vendor.cts_interaction_helper_packagescom.oem.cts.helpers 로 설정됩니다.

참조 구현

참조 구현에는 cts/libs/helpers 아래의 인터페이스와 cts cts/helpers helpers 아래의 기본 AOSP 도우미가 포함됩니다. 최상위 인터페이스는 cts/libs/helpers/core/src/com/android/cts/helpers/ICtsDeviceInteractionHelper.java 에 설명되어 있습니다.

CTS 테스트를 도우미에 연결하기 위해 테스트 소유자는 cts/libs/helpers/core/src/com/android/cts/helpers/DeviceInteractionHelperRule.java 에 문서화된 @Rule 정의를 사용할 수 있습니다.

프레임워크와 예상 도우미 동작을 사용하는 각 CTS 모듈은 cts/libs/helpers/core/src/com/android/cts/helpers 아래에 정의된 인터페이스에 문서화되어 있습니다.

CTS 테스트 실행

도우미 없이 테스트

하나의 속성 외에 도우미 없이 테스트하는 옵션은 런타임에 기기에 존재하지 않지만 선택적으로 CTS 테스트가 기기와 상호 작용하는 방식을 수정합니다. 도우미 구현 없이 CTS를 실행해야 하는 경우 두 가지 옵션이 있습니다.

  • 장치에서 ro.vendor.cts_interaction_helper_packages 속성을 제거하십시오. 이렇게 하면 해당 빌드에서 도우미가 완전히 사용되지 않습니다.
  • CTS를 실행하기 전에 testcases 디렉토리에서 도우미 APK를 제거하세요. 이렇게 하면 APK가 testcases 로 복원될 때까지 모든 실행에서 도우미가 사용되지 않습니다.

Tradefed 인수와 도우미 APK가 로드되는 ro.vendor.cts_interaction_helper_packages 속성 컨트롤을 사용하여 기본 설정을 변경할 수 있습니다.

사용 가능한 각 설정의 예상 값 또는 범위는 다음을 참조하십시오.

  • ro.vendor.cts_interaction_helper_packages 는 패키지 이름을 포함하는 콜론으로 구분된 문자열입니다. OEM의 도우미 구현에 유효한 패키지 선택인 모든 값을 사용할 수 있습니다.
  • cts-tradefed--module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp' 와 같이 한 테스트 실행에 대한 예상 속성을 일시적으로 변경하는 device-interaction-helper:property-name 인수를 허용합니다. --module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp' . 속성 이름의 값은 장치에 설정한 모든 속성이 될 수 있습니다. 속성 값은 위에서 설명한 ro.vendor.cts_interaction_helper_packages 속성과 동일한 제한 사항을 따릅니다.

사용자 정의로 테스트

기본적으로 참조 구현은 기본 Android에서 CTS를 전달합니다. 파트너 구현이 UI 맞춤설정으로 CTS를 통과하는지 확인하세요. 사용자 정의한 UI 또는 기능을 포함하는 CTS 모듈을 실행하십시오.

특정 CTS 모듈 또는 도우미는 아직 일부 사용자 지정을 지원하지 않을 수 있습니다.

  • 사용자 지정하려는 UI와 상호 작용하는 CTS 모듈은 도우미 프레임워크를 사용하지 않을 수 있습니다. CTS 모듈은 수요 및 테스트 소유자 우선 순위에 따라 도우미 프레임워크로 변환될 것으로 예상됩니다. 계획된 기능을 지원하기 위해 CTS 변경을 요청하는 것과 유사하게, 변환이 일정대로 진행되도록 프로세스 초기에 변환 요청을 제출하십시오.
  • 기존 도우미가 제공하는 기능은 원하는 사용자 지정을 완전히 처리하지 못할 수 있습니다. 도우미 함수는 UI 종속성을 추상화해야 합니다. 도우미 함수에 간접적으로 UI 종속성이 있는 경우 CTS의 버그와 유사하게 처리할 수 있습니다.