앱 크롤러

Jetpack의 일부인 앱 크롤러 도구를 사용하면 코드를 작성하거나 유지할 필요 없이 자동으로 앱을 테스트할 수 있습니다.

크롤러는 앱과 함께 실행되어 앱의 상태 공간을 탐색하는 작업(탭, 스와이프 등)을 자동으로 개시합니다. 더 이상 실행할 고유 작업이 없거나 앱이 다운되거나 지정된 제한 시간에 도달하면 크롤링이 자동으로 종료됩니다.

크롤러를 사용하면 코드를 작성하거나 유지하지 않아도 되므로 간편하게 테스트할 수 있습니다. 또한 다양한 기기에서 테스트를 실행하여 비정상 종료, 시각적 문제, 성능 문제를 찾을 수도 있습니다. 일반적으로 Firebase Test Lab과 같은 클라우드 기반 서비스를 사용하여 다양한 조합의 화면 크기 및 하드웨어 구성을 더 빠르고 간편하게 테스트하는 것이 좋습니다.

타겟층

앱 크롤러는 최소 구성으로 앱의 기본 기능을 확인하려는 개발자를 타겟팅합니다. 완전 불투명 박스 테스트 외에도 로그인 사용자 인증 정보 또는 딥 링크와 같은 특정 입력을 제공하도록 크롤러를 구성할 수도 있습니다.

시작하기

시작하기 전에 최신 버전의 Android SDK가 설치되어 있는지 확인하세요. Android SDK는 Android 스튜디오와 함께 제공됩니다. 독립형 Android SDK를 설치했다면 최신 빌드 도구 및 플랫폼 도구가 포함되어 있는지 확인하세요.

그런 다음 크롤러 바이너리 보관 파일을 다운로드합니다.

다운로드가 끝나면 에뮬레이터를 시작하거나 USB 케이블을 사용하여 실제 기기를 연결하세요. 다음 명령어를 실행하여 기기가 연결되어 있는지 확인할 수 있습니다.

adb devices

크롤러를 호출하려면 먼저 보관 파일을 선택한 디렉터리에 추출하세요. 그리고 다음 명령어를 사용하여 디렉터리에서 크롤러를 호출하세요.

java -jar crawl_launcher.jar --apk-file path/to/my/app.apk --android-sdk path/to/my/android/sdk

크롤러 옵션

다음 옵션을 사용하여 크롤러를 호출할 수 있습니다.

옵션 설명
--android-sdk path

Android SDK의 경로를 지정합니다.

필수 플래그입니다.

--apk-file file

앱 크롤러가 설치하고 크롤링하는 앱 APK의 경로를 지정합니다.

--app-package-name이 지정되지 않았다면 필수 플래그입니다.

--app-package-name name

앱의 패키지 이름을 지정합니다. 앱이 기기에 이미 설치되어 있고 다시 설치할 필요가 없다면 이 옵션을 사용합니다.

--apk-file이 지정되지 않았다면 필수 플래그입니다.

--key-store path

앱 및 크롤러 APK에 서명하는 키 저장소의 경로를 지정합니다. 앱이 제대로 작동하는 데 특정 서명이 필요하다면 이 옵션을 사용합니다.

--key-store-password password

--key-store 옵션에 제공하는 키 저장소의 비밀번호를 지정합니다.

--key-store가 지정되었다면 필수 플래그입니다.

--timeout-sec timeout

크롤링 제한 시간(초)을 지정합니다. 지정하지 않으면 크롤링이 60초 후에 중지됩니다.

알려진 문제

원본 서명 파일을 삭제하지 못했습니다.

크롤링 시작 전에 JDK 9 사용자에게 다음 오류 메시지가 표시될 수 있습니다.

androidx.test.tools.crawler.launcher.exceptions.ApkSigningException: Failed to delete original signature files

이 동작이 발생하면 JDK 8 또는 10 이상을 사용하는 것이 좋습니다. 문제에 관한 자세한 내용은 JDK 9 버그를 참고하세요. 일부 사용자는 업데이트된 버전의 Android 스튜디오를 통해 APK를 다시 빌드하여 문제를 수정했습니다.

추가 리소스

앱 크롤러 사용에 관한 자세한 내용은 다음 리소스를 참고하세요.

  • Firebase Test Lab Robo 테스트에는 클라우드에서 크롤러 테스트를 실행하는 방법에 관한 안내와 자세한 문서가 포함되어 있습니다.