Robo 테스트 실행

Robo 테스트는 Firebase Test Lab에 통합된 테스트 도구입니다. Robo 테스트는 앱의 사용자 인터페이스(UI) 구조를 분석한 후 사용자 활동을 자동으로 시뮬레이션하여 체계적으로 탐색합니다. Robo 테스트는 동일한 설정으로 특정 기기 구성에서 앱을 테스트할 때 항상 같은 사용자 활동을 동일한 순서로 시뮬레이션합니다. 반복 가능한 이 테스트 방법을 사용하면 Robo 테스트를 사용하여 버그 수정을 검증하고 회귀 테스트를 수행할 수 있습니다.

Robo 테스트에서는 로그 파일을 수집하고, 주석이 들어간 스크린샷을 저장하고, 이러한 스크린샷으로 동영상을 제작하여 테스트 중에 수행된 사용자 작업 시뮬레이션을 보여 줍니다. 이러한 로그, 스크린샷, 동영상은 앱 비정상 종료의 근본 원인을 파악하는 데 도움이 될 수 있습니다. 이러한 Robo 테스트 기능은 앱의 UI 문제를 찾는 데도 도움이 됩니다.

일반 Robo 테스트 실행 외에도 Robo 테스트 기능인 Robo 스크립트를 사용하여 테스트를 맞춤설정할 수 있습니다. 자세한 내용은 Robo 스크립트 실행을 참조하세요.

Robo 테스트 크롤링 통계

Robo 테스트 결과 해석을 돕기 위해 Robo 테스트가 각 테스트 크롤링 진행 시 통계를 기록합니다. Test Lab은 테스트 결과 페이지의 Robo 테스트 탭 상단에 통계를 표시합니다.

  • 작업: Robo 스크립트 작업, Monkey 작업, Robo 지시어를 비롯한 크롤링 중 수행된 총 작업 수입니다

  • 활동: 크롤링 중 다룬 각 활동의 수입니다.

  • 화면: 크롤링 중 방문한 각 화면의 수입니다.

Test Lab은 또한 통계를 사용하여 크롤링 그래프 형식으로 Robo 테스트를 시각적으로 나타냅니다. 그래프에서 화면은 노드, 작업은 에지입니다. 화면 간 에지를 따라 Robo 테스트가 크롤링을 통해 앱을 어떻게 순회했는지 볼 수 있습니다.

Robo 테스트 제한 시간

앱 UI의 복잡도에 따라 Robo 테스트에서 전체 UI 상호작용 세트를 완료하는 데 5분 이상이 걸릴 수 있습니다. 대부분의 앱에 테스트 제한 시간을 120초(2분) 이상으로, 비교적 복잡한 앱에는 300초(5분)로 설정하는 것이 좋습니다. 제한 시간 기본값은 Android 스튜디오 및 Firebase Console에서 테스트를 실행할 때는 300초(5분), gcloud 명령줄에서 테스트를 실행할 때는 900초(15분)입니다.

앱 시작 제한 시간 오류

앱이 시작되는 데 시간이 오래 걸릴 경우 Robo 테스트가 오류 메시지를 표시하고 앱을 크롤링하지 못할 수도 있습니다. 이 문제는 시작하는 데 시간이 매우 오래 걸리는 경우에만 발생하며 앱이 더욱 빨리 시작되도록 수정해야만 해결될 수 있습니다.

Robo 스크립트를 사용한 추가 제어

테스트를 더 세밀하게 제어해야 할 때가 있습니다. 예를 들어 일반적인 사용자 경험을 테스트하거나 사용자 이름 및 비밀번호 같은 특정 UI 입력을 제공해야 할 수 있습니다. 이때 Robo 스크립트가 도움이 될 수 있습니다. Robo 스크립트에 대한 자세한 내용은 Robo 스크립트 실행Robo 스크립트 참조 가이드를 참조하세요.

Robo 테스트 및 Android 외 UI 위젯

Robo 테스트에서는 Android API를 사용해 Android UI 위젯의 작업을 직접 수행합니다. 덕분에 테스트에서 UI를 자동으로 탐색하는 데 도움이 되지만 이로 인해 화면의 Android UI 계층 구조를 추출해야지만 테스트를 실행할 수 있습니다.

앱 화면에서 Android UI 위젯을 사용하지 않는 경우에는 Robo 테스트에서 Monkey 작업을 사용해 해당 화면을 테스트합니다. 보다 체계적인 Robo 테스트 작업과 달리 Monkey 작업은 단순히 기기 화면 아무 위치에서 탭 이벤트를 시뮬레이션합니다.

Android UI 위젯을 사용하지 않는 화면을 더 우수한 방식으로 테스트하려면 Firebase Test Lab 게임 루프 테스트를 통해 Monkey 작업의 임의의 탭을 스크립트가 작성된 탭 및 상호작용 세트로 교체하면 됩니다.

Google Play 통합

알파 또는 베타 채널을 사용하여 앱의 APK 파일을 업로드하고 게시할 때 Google Play Console에서 Robo 테스트를 사용할 수 있습니다. Robo 테스트는 세계 여러 지역에서 널리 사용되는 실제 기기 세트에서 실행되므로 다양한 폼 팩터와 하드웨어 구성을 포괄하여 테스트할 수 있습니다. 자세한 내용은 사전 출시 보고서로 문제점 파악을 참조하세요.

테스트 계정 로그인 및 사전 정의된 텍스트 입력

Robo 테스트는 테스트 계정 로그인을 지원하며 앱의 필드에 사전 정의된 텍스트를 입력할 수 있도록 해줍니다. 커스텀 로그인 및 기타 사전 정의된 텍스트 입력의 경우 Robo 테스트는 앱의 EditText 필드에 텍스트를 입력할 수 있습니다. 각 문자열에서는 Android 리소스 이름으로 EditText 필드를 식별해야 합니다. 자세한 내용은 리소스 액세스를 참조하세요.

로그인

Robo 테스트에는 로그인을 지원하는 상호 배타적인 두 가지 방법이 있습니다.

  • 커스텀 로그인: 테스트 계정 인증 정보를 제공하는 경우 해당 인증 정보뿐 아니라 인증 정보를 입력할 위치를 Robo 테스트에 알려야 합니다.

  • 자동 로그인: 앱에 Google 계정으로 인증하는 로그인 화면이 있는 경우 커스텀 로그인에 테스트 계정 사용자 인증 정보를 제공하지 않으면 Robo 테스트는 Google 테스트 계정을 사용합니다.

커스텀 로그인을 위한 테스트 계정 사용자 인증 정보를 제공하는 방법은 다음과 같습니다.

  1. 측정기준 선택 페이지에서 추가 옵션을 선택합니다.

  2. 테스트 계정 사용자 인증 정보(선택사항)에 사용자 이름 및 비밀번호 리소스 이름과 테스트 계정의 사용자 이름 및 비밀번호를 입력합니다.

사전 정의된 텍스트 입력

앱에서 사용하는 다른 텍스트 필드에 커스텀 입력 텍스트를 제공할 수 있습니다. 다른 필드에 텍스트 입력을 제공하는 방법은 다음과 같습니다.

  1. 측정기준 선택 페이지에서 추가 옵션을 선택합니다.

  2. 추가 필드(선택사항)에 리소스 이름을 1개 이상, 그리고 해당 텍스트 필드에 입력할 문자열을 입력합니다.

사전 정의된 텍스트 입력 오류

Robo 테스트가 제공된 정규 표현식과 일치하는 Android 리소스 이름을 사용하여 EditText 필드를 검색합니다. Robo가 일치하는 필드를 찾지 못할 경우 텍스트를 입력하지 않고 대신 평소와 같이 크롤링을 계속 진행합니다.

테스트용으로 앱에서 지원하는 딥 링크를 최대 3개까지 제공할 수 있습니다. 딥 링크는 Android ACTION_VIEW 인텐트로 앱에서 실행됩니다. 그러므로 각 링크는 앱의 인텐트 필터와 일치해야 합니다.

딥 링크가 1개 이상 제공되면 먼저 ACTION_MAIN 인텐트를 통해 앱이 정상적으로 실행되고 지정한 제한 시간까지 크롤링됩니다. 기본 크롤링 후 각 딥 링크는 추가로 30초 동안 크롤링됩니다.

Robo 테스트가 딥 링크와 일치하는 활동을 찾지 못하면 Test Lab은 링크를 무시합니다. 일반적으로 딥 링크 문제는 제공된 딥 링크와 앱의 정의가 서로 다르면 발생합니다. 제공된 URL과 앱 모두에서 오탈자 또는 기타 불일치가 있는지 확인합니다.

앱 라이선스 지원

Test Lab은 Google Play에서 제공하는 앱 라이선스 서비스를 사용하는 앱을 지원합니다. Test Lab으로 앱을 테스트할 때 라이선스를 정상적으로 확인하려면 Play 스토어의 프로덕션 채널에 앱을 게시해야 합니다. Test Lab으로 알파 또는 베타 채널의 앱을 테스트하려면 Test Lab에 앱을 업로드하기 전에 라이선스 확인을 삭제하세요.

알려진 문제

Robo 테스트에는 현재 다음과 같은 제한사항이 있습니다.

  • UI 프레임워크 지원: Robo 테스트는 Android UI 프레임워크의 UI 요소(View 객체와 ViewGroup 객체 포함, WebView 객체는 제외)를 사용하는 앱하고만 호환됩니다. Unity 게임 엔진을 사용하는 앱을 포함하여 다른 UI 프레임워크를 사용하는 앱을 Robo 테스트로 시험하면 테스트가 첫 화면에서 종료될 수 있습니다.
  • 로그인 보안문자: Robo 테스트는 로그인을 위해 사용자 인증 정보 입력 이외에 보안문자 입력 등의 추가적인 사용자 작업이 필요한 로그인 화면을 우회하지 못합니다.

다음 단계