Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

계측 테스트 시작하기

계측 테스트EspressoUI Automator 2.0 Android 테스트 프레임워크를 사용하여 앱을 테스트하는 개발자나 개발자 팀에서 특별히 작성한 테스트입니다. Test Lab은 지정된 시간 동안 실행이 완료되는 모든 테스트 사례의 결과를 제공합니다.

계측 테스트를 작성할 때 나중에 앱용 APK 모듈과 함께 Test Lab에 업로드할 두 번째 APK 모듈을 만듭니다. 테스트 APK 만들기에 대한 자세한 내용은 앱 테스트를 참조하세요.

계측 테스트 제한 시간

계측 테스트는 실제 기기에서 최대 45분, 가상 기기에서 최대 60분 동안 실행됩니다.

조정자를 사용하여 개별적으로 테스트 실행

Android 테스트 조정자를 사용하면 앱의 계측 테스트를 개별적으로 실행할 수 있습니다. Test Lab은 항상 최신 버전의 조정자를 사용합니다. 조정자를 사용하면 몇 가지 이점과 한 가지 단점이 있습니다.

장점:

  • 공유 상태 없음: 각 테스트가 자체 계측 인스턴스에서 실행되므로 테스트 간에 공유 상태가 누적되지 않습니다.
  • 오류 격리: 테스트 중 하나에서 오류가 발생해도 오류가 발생한 테스트의 계측만 종료되고 다른 테스트는 계속 실행됩니다.

단점:

  • 런타임 증가: 각 테스트에서 자체 계측 인스턴스를 실행하므로 전체 테스트 처리에 다소 시간이 걸립니다. 실행 시간이 길어지면 할당량 사용 또는 청구 시간이 영향을 받고 기기의 타임아웃 시간이 초과될 수 있습니다.

조정자 사용 설정

Test Lab에서 조정자를 사용 설정하려면 계측 테스트 설정에서 추가 옵션 > 조정자로 실행을 클릭합니다.

샤딩으로 테스트 속도 높이기

테스트에 샤딩을 수행하면 일련의 테스트가 개별적으로 분리되어 실행되는 하위 그룹(샤드)으로 분할됩니다. Test Lab은 자동으로 여러 기기를 사용해 각 샤드를 동시 실행하여 전체 테스트 완료 시간을 단축합니다.

샤드 N개를 만든다고 가정해보겠습니다. 선택한 각 기기에서 Test Lab은 동일한 기기 N개를 가동하고 각 기기에서 테스트 일부를 실행합니다. 즉, 샤딩하지 않은 테스트 사례에서는 항상 기기마다 테스트가 1번 실행되지만 샤딩한 테스트 사례에서는 기기마다 테스트가 여러 번 실행됩니다. Test Lab의 핵심 개념에 대한 간략한 개요는 핵심 개념을 참조하세요.

테스트 샤드 비용 청구

Test Lab은 AndroidJUnitRunner의 기본 제공 샤딩 메커니즘을 활용하여 샤드를 구현합니다. 빈 샤드(테스트 사례가 할당되지 않은 샤드) 가동 시 요금 청구를 방지하려면 만든 샤드 수가 총 테스트 사례 수보다 적어야 합니다. 각 테스트 사례를 실행하는 데 걸리는 시간에 따라 일반적으로 샤드마다 테스트 사례를 2~10개 할당하는 것이 좋습니다.

결제에 대한 자세한 내용은 사용량, 할당량, 결제를 참조하세요.

테스트 샤딩 사용 설정

Firebase Console을 사용하여 테스트 샤딩을 사용 설정할 수 있습니다. 테스트 샤딩을 사용 설정하려면 다음 안내를 따르세요.

  1. 계측 테스트 설정에서 추가 옵션을 클릭합니다.

  2. 샤딩 섹션에서 실행할 샤드 수를 입력합니다.

스크린샷 만들기

다음 안내에서는 Test Lab의 스크린샷 라이브러리를 앱에 추가하고 테스트에서 해당 라이브러리를 호출하는 방법을 설명합니다. Test Lab은 Espresso 테스트 프레임워크로 작성된 테스트와 같이 계측 테스트를 실행할 때 스크린샷을 만드는 데 사용할 수 있는 라이브러리를 제공합니다. 테스트를 실행한 후 Android 스튜디오 또는 Firebase Console에서 스크린샷을 검토할 수 있습니다.

스크린샷 테스트를 사용 설정하려면 cloudtestingscreenshotter_lib.aar 라이브러리를 추가하세요. 스크린샷을 만드는 기능은 테스트 APK app-debug-test-unaligned.apkNotePad 샘플 앱에 이미 통합되어 있으며 Robo 테스트를 실행할 때도 스크린샷이 자동으로 캡처됩니다.

1. 프로젝트에 스크린샷 라이브러리 추가

  1. Android 스튜디오에서 프로젝트 뷰를 열고 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭합니다. 그런 다음 새로 만들기 > 디렉터리를 클릭합니다.

  2. 새 디렉터리 대화상자에 aars를 입력합니다. 이렇게 하면 테스트 프로젝트의 루트에 app 폴더의 이웃 디렉터리로 aars 디렉터리가 생성됩니다.

  3. cloudtestingscreenshotter_lib.aar을 복사하여 aars 폴더에 붙여 넣습니다.

  4. 앱의 루트 수준(프로젝트 수준) build.gradle 파일에서 모든 repositories 블록에 aars 폴더에 대한 참조를 추가합니다.

    repositories {
        jcenter()
        flatDir {
            dirs '../aars'
        }
    }
    ...
  5. 모듈의 최상위 디렉터리(NotePad 예시 앱의 경우 app 디렉터리)에서 build.gradle 파일을 열고 cloudtestingscreenshotter_lib.aar에 대한 종속 항목을 최상위 dependencies 블록에 추가합니다.

    dependencies {
        // Cloud testing
        androidTestCompile (name:'cloudtestingscreenshotter_lib', ext:'aar')
        // Other dependencies go here
        }
    
  6. AndroidManifest.xml 파일에서 <manifest> 태그 내에 다음 줄을 추가하여 앱의 시스템 권한을 지정합니다. Android 10(API 수준 29) 이상에서 테스트하는 경우 WRITE_EXTERNAL_STORAGE 권한을 생략하세요. 앱에서 스크린샷을 기기에 읽고 쓰는 데 이 권한이 필요하지 않습니다.

    <manifest ... >
       <!-- WRITE_EXTERNAL_STORAGE is not needed on Android 10 (API level 29) or higher. -->
       <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
       <uses-permission android:name="android.permission.INTERNET"/>
       ...
    </manifest>
    

2. 테스트에서 스크린샷 만들기

테스트 중 스크린샷을 만들 시점에 cloudtestingscreenshotter_lib 라이브러리의 ScreenShotter.takeScreenshot 메서드를 호출합니다. 첫 번째 인수는 스크린샷을 식별하는 데 사용할 라벨로서 다음 예시에서는 main_screen_2를 사용합니다.

자바

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */);

Kotlin+KTX

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */)

3. 스크린샷 보기

테스트가 완료된 후 테스트 결과 트리에서 요소를 선택하고 스크린샷 보기 스크린샷 보기 옵션을 클릭하면 테스트 중에 생성된 스크린샷을 비교할 수 있습니다.

스크린샷 비교 화면

다음과 같이 서로 다른 구성의 스크린샷을 선택하여 비교할 수 있습니다.

태스크 작업
테스트 실행 간 전환 왼쪽 상단의 드롭다운 메뉴를 사용합니다.

테스트 사례 메뉴
테스트 실행 내에서 스크린샷 간 전환 오른쪽 상단의 화살표를 사용합니다.

스크린샷 전환
현재 뷰에 스크린샷 비교 패널 추가 비교를 클릭합니다.

비교
다른 테스트 측정기준(기기 유형, 방향, 언어 등)을 선택합니다. 스크린샷 하단 목록에서 새 측정기준 요소를 선택합니다.