Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

Robo 테스트 실행

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

Robo 테스트는 로그 파일을 캡처하고 주석이 달린 일련의 스크린샷을 저장한 다음 해당 스크린샷에서 비디오를 생성하여 수행한 시뮬레이션된 사용자 작업을 보여줍니다. 이러한 로그, 스크린샷 및 비디오는 앱 충돌의 근본 원인을 파악하는 데 도움이 될 수 있습니다. 이러한 Robo 테스트 기능은 앱 UI의 문제를 찾는 데도 도움이 됩니다.

일반 Robo 테스트를 실행하는 것 외에도 Robo 테스트의 기능인 Robo 스크립트를 사용하여 테스트를 사용자 지정할 수 있습니다. 자세한 내용 은 Robo 스크립트 실행 을 참조하십시오.

Robo 테스트 크롤링 통계

Robo 테스트 결과를 해석하는 데 도움이 되도록 Robo 테스트는 각 테스트 크롤링 중에 통계를 기록합니다. Test Lab은 테스트 결과 페이지의 Robo 테스트 탭 상단에 통계를 표시합니다.

  • 작업: Robo 스크립트 작업, 원숭이 작업 및 Robo 지시문을 포함하여 크롤링 중에 수행된 총 작업 수입니다.

  • 활동: 크롤링 중에 다루는 개별 활동의 수입니다.

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

Test Lab은 또한 통계를 사용하여 크롤링 그래프의 형태로 Robo 테스트의 시각적 표현을 생성합니다. 그래프에는 노드로 화면이 있고 가장자리로 동작이 있습니다. 화면 사이의 가장자리를 따라가면 Robo 테스트가 크롤링 전체에서 앱을 어떻게 통과했는지 알 수 있습니다.

로보 테스트 시간 초과

앱 UI의 복잡성에 따라 Robo 테스트에서 철저한 UI 상호 작용 세트를 완료하는 데 5분 이상 걸릴 수 있습니다. 대부분의 앱의 경우 테스트 제한 시간을 최소 120초(2분)로, 적당히 복잡한 앱의 경우 300초(5분)로 설정하는 것이 좋습니다. 제한 시간의 기본값은 Android Studio 및 Firebase 콘솔에서 실행되는 테스트의 경우 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 Actions에 폴백하여 해당 화면을 테스트합니다. 보다 체계적인 Robo 테스트 작업과 달리 Monkey Actions는 장치 화면의 준 임의 위치에서 탭 이벤트를 시뮬레이션합니다.

Android UI 위젯을 사용하지 않는 화면을 더 잘 테스트하려면 Monkey Action의 임의 탭을 Firebase Test Lab 게임 루프 테스트 를 통해 스크립팅된 탭 및 상호작용 세트로 바꿀 수 있습니다.

Google Play와 통합

알파 또는 베타 채널을 사용하여 앱의 APK 파일을 업로드하고 게시할 때 Google Play Console에서 Robo 테스트를 사용할 수 있습니다. Robo 테스트는 다양한 지리적 위치의 널리 사용되는 물리적 장치 세트에서 실행되어 다양한 폼 팩터 및 하드웨어 구성에 대한 테스트 범위를 제공합니다. 자세한 내용은 사전 출시 보고서를 사용하여 문제 식별을 참조하십시오.

테스트 계정 로그인 및 미리 정의된 텍스트 입력

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

로그인

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

  • 사용자 지정 로그인: 테스트 계정 자격 증명을 제공하는 경우 Robo 테스트에 자격 증명을 입력할 위치를 지정하고 해당 자격 증명도 제공해야 합니다.

  • 자동 로그인: 앱에 인증을 위해 Google 계정을 사용하는 로그인 화면이 있는 경우 사용자 지정 로그인을 위한 테스트 계정 자격 증명을 제공하지 않는 한 Robo 테스트는 Google 테스트 계정을 사용합니다.

사용자 지정 로그인을 위한 테스트 계정 자격 증명을 제공하려면 다음을 수행합니다.

  1. 차원 선택 페이지에서 추가 옵션을 선택합니다.

  2. 테스트 계정 자격 증명(선택 사항) 아래에 테스트 계정의 사용자 이름 및 암호 리소스 이름과 사용자 이름 및 암호를 입력합니다.

미리 정의된 텍스트 입력

앱에서 사용하는 다른 텍스트 필드에 사용자 정의 입력 텍스트를 제공할 수 있습니다. 추가 필드에 텍스트 입력을 제공하려면 다음을 수행하십시오.

  1. 차원 선택 페이지에서 추가 옵션을 선택합니다.

  2. 추가 필드(선택 사항) 에서 하나 이상의 리소스 이름과 해당 텍스트 필드에 입력할 문자열을 입력합니다.

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

Robo 테스트는 제공된 정규 표현식과 일치하는 Android 리소스 이름으로 EditText 필드를 검색합니다. Robo가 일치하는 필드를 찾을 수 없으면 텍스트를 입력하지 않지만 평소와 같이 크롤링을 계속합니다.

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

하나 이상의 딥 링크가 제공되면 앱이 먼저 정상적으로 시작되고( ACTION_MAIN 인텐트 사용) 지정된 제한 시간까지 크롤링됩니다. 기본 크롤링 후 각 딥 링크는 각각 추가로 30초 동안 크롤링됩니다.

Robo 테스트에서 딥 링크와 일치하는 활동을 찾을 수 없는 경우 Test Lab은 링크를 무시합니다. 딥 링크 문제는 일반적으로 제공된 딥 링크와 앱의 정의가 일치하지 않아 발생합니다. 제공된 URL과 앱에 오타나 기타 불일치가 있는지 확인하세요.

앱 라이선스 지원

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

알려진 문제

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

  • UI 프레임워크 지원: Robo 테스트는 Android UI 프레임워크의 UI 요소( ViewViewGroup 개체 포함, WebView 개체 제외)를 사용하는 앱과만 호환됩니다. Robo 테스트를 사용하여 Unity 게임 엔진을 사용하는 앱을 포함하여 다른 UI 프레임워크를 사용하는 앱을 실행하는 경우 테스트가 첫 번째 화면을 넘어 탐색하지 않고 종료될 수 있습니다.
  • 로그인 보안 문자: Robo 테스트는 로그인을 위해 자격 증명을 입력하는 것 외에 추가 사용자 작업(예: 보안 문자 작성)이 필요한 로그인 화면을 우회할 수 없습니다.

다음 단계