Robo 테스트는 Firebase Test Lab에 통합된 테스트 도구입니다. Robo 테스트는 앱의 사용자 인터페이스(UI) 구조를 분석한 후 사용자 활동을 자동으로 시뮬레이션하여 체계적으로 탐색합니다. Robo 테스트는 동일한 설정으로 특정 기기 구성에서 앱을 테스트할 때 항상 같은 사용자 활동을 동일한 순서로 시뮬레이션합니다. 반복 가능한 이 테스트 방법을 사용하면 Robo 테스트를 사용하여 버그 수정을 검증하고 회귀 테스트를 수행할 수 있습니다.
Robo 테스트에서는 로그 파일을 수집하고, 주석이 들어간 스크린샷을 저장하고, 이러한 스크린샷으로 동영상을 제작하여 테스트 중에 수행된 사용자 작업 시뮬레이션을 보여 줍니다. 이러한 로그, 스크린샷, 동영상은 앱 비정상 종료의 근본 원인을 파악하는 데 도움이 될 수 있습니다. 이러한 Robo 테스트 기능은 앱의 UI 문제를 찾는 데도 도움이 됩니다.
일반 Robo 테스트 실행 외에도 Robo 테스트 기능인 Robo 스크립트를 사용하여 테스트를 맞춤설정할 수 있습니다. 자세한 내용은 Robo 스크립트 실행을 참조하세요.
iOS+용 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 테스트에 알려야 합니다.
자동 로그인: 커스텀 로그인에 테스트 계정 사용자 인증 정보를 제공하지 않으면 자동 로그인이 사용됩니다. Robo 테스트는 Google 테스트 계정을 사용하여 표준 Android 위젯 또는 Compose 애플리케이션으로 빌드된 앱에 자동으로 로그인할 수 있습니다.
커스텀 로그인을 위한 테스트 계정 사용자 인증 정보를 제공하는 방법은 다음과 같습니다.
측정기준 선택 페이지에서 추가 옵션을 선택합니다.
테스트 계정 사용자 인증 정보(선택사항)에 사용자 이름 및 비밀번호 리소스 이름과 테스트 계정의 사용자 이름 및 비밀번호를 입력합니다.
사전 정의된 텍스트 입력
앱에서 사용하는 다른 텍스트 필드에 커스텀 입력 텍스트를 제공할 수 있습니다. 다른 필드에 텍스트 입력을 제공하는 방법은 다음과 같습니다.
측정기준 선택 페이지에서 추가 옵션을 선택합니다.
추가 필드(선택사항)에 리소스 이름을 1개 이상, 그리고 해당 텍스트 필드에 입력할 문자열을 입력합니다.
사전 정의된 텍스트 입력 {:#predefined-text} 오류
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 스크립트를 사용하여 테스트를 맞춤설정합니다.