기기 측 테스트(계측, UI Automator 테스트 등)를 실행할 때는 호스트 측 수집기가 적합하지 않을 수도 있습니다. 이는 기기에서 실행되는 테스트에 관한 측정항목 수집을 동기화하기가 어렵기 때문입니다. 예를 들어 비동기식으로 캡처한 스크린샷은 원하는 화면을 놓칠 가능성이 높으므로 소용이 없습니다.
이러한 사용 사례를 충족하기 위해서는 Google 수집기의 기기 측 버전이 존재해야 하며, 모든 'AndroidJUnitRunner' 계측에 이를 사용할 수 있어야 합니다. BaseMetricListener를 구현하면 Tradefed 보고 파이프라인과 온전히 호환되는 방식으로 수집된 측정항목을 자동으로 보고할 수 있습니다.
이 라이브러리는 Tradefed 자체에서 분리되며 Tradefed 없이 사용할 수 있습니다.
Tradefed의 'AndroidJUnitTest'를 사용 중인 경우에는 다음과 같은 명령줄 옵션을 지정하여 수집기가 테스트와 함께 실행되도록 하기만 하면 됩니다.
--device-listeners android.device.collectors.ScreenshotListener
주의: 수집기 클래스가 런타임 시점에 리졸브되기 위해서는 계측 APK가 makefile에 다음을 추가하여 클래스를 정적으로 포함해야 할 가능성이 가장 높습니다.
LOCAL_STATIC_JAVA_LIBRARIES += collector-device-lib
구현
기본 클래스 BaseMetricListener
외에 추가로 구현하는 경우 계측 수명 주기 동안 어느 시점에 측정항목을 수집하고 싶은지 선택할 수 있습니다.
- 테스트 실행 시작 시:
onTestRunStart
- 테스트 사례 시작 시:
onTestStart
- 테스트 사례 종료 시:
onTestEnd
- 테스트 사례 실패 시:
onTestFail
- 테스트 실행 종료 시:
onTestRunEnd
상호작용
기기 측의 측정항목 수집은 계측 실행 자체에 동기식으로 이루어지며 측정항목은 다시 계측 결과로 전달되고 Tradefed에 의해 파싱되어 호출의 일부로 보고됩니다.