지속적 통합(CI) 시스템을 사용하여 앱을 개발할 때 Firebase Test Lab을 사용할 수 있습니다. 지속적 통합 시스템은 앱 소스 코드에 대한 업데이트를 체크인할 때마다 자동으로 앱을 빌드하고 테스트해 줍니다.
Jenkins CI와 함께 Firebase Test Lab 사용
이 섹션에서는 Jenkins CI와 함께 Test Lab을 사용하는 방법을 설명합니다.
요구사항
Jenkins와 함께 Firebase Test Lab을 사용하려면 우선 다음 단계를 완료해야 합니다.
gcloud 설정. gcloud 명령줄에서 Firebase Test Lab 사용 안내에 따라 Firebase 프로젝트를 만들고 로컬 Google Cloud SDK 환경을 구성합니다.
서비스 계정 만들기 및 승인. 서비스 계정에는 스팸 검사나 보안문자 메시지가 적용되지 않기 때문에 중단 없는 CI 빌드가 가능합니다. Google Cloud콘솔에서 편집자 역할이 있는 서비스 계정을 만든 다음 활성화합니다(gcloud auth activate-service-account 문서 참조).
필수 API 사용 설정. 서비스 계정으로 로그인한 후 Google Developers Console API 라이브러리 페이지에서 Google Cloud Testing API 및 Cloud Tool Results API를 사용 설정합니다. 이러한 API를 사용 설정하려면 Console 상단의 검색창에 API 이름을 입력하고 API의 개요 페이지에서 API 사용 설정을 클릭합니다.
Jenkins 설치 및 설정
Linux 또는 Windows에 Jenkins CI를 설치하고 설정할 수 있습니다. 이 가이드의 특정 세부내용은 Linux에 Jenkins CI를 설치하여 실행할 때를 기준으로 합니다(예: 파일 경로에 슬래시(/
) 사용).
Linux 또는 Windows를 실행하는 컴퓨터에 Jenkins를 다운로드하여 설치하려면 Jenkins 설치의 안내를 따릅니다. Jenkins를 설치한 후 Jenkins 시작 및 액세스의 안내에 따라 설정을 완료하고 Jenkins 대시보드에 액세스합니다.
전역 보안 설정 구성
Jenkins를 처음 설치하면 사용자 인증 및 액세스 제어가 구성되어 있지 않습니다. Jenkins와 함께 Firebase Test Lab을 사용하려면 전역 보안 설정을 구성하여 액세스 제어를 적용하고 사용자를 인증해야 합니다.
전역 보안 설정을 구성하는 방법
- 서버에서 Jenkins 대시보드로 이동합니다. 이렇게 하려면 http://<servername>:8080을 탐색합니다. 여기에서 <servername>은 Jenkins를 설치한 컴퓨터의 이름입니다.
- Jenkins 대시보드에서 Manage Jenkins를 클릭하고 Configure Global Security를 클릭합니다.
- Configure Global Security 페이지에서 Enable security를 클릭하고 Save를 클릭합니다.
Jenkins 보안 설정 구성에 관한 자세한 내용은 빠르고 간단한 보안, 표준 보안 설정, Jenkins 보안을 참조하세요.
Jenkins 프로젝트 만들기
다음으로, Firebase Test Lab으로 앱에 대한 지속적 통합 테스트를 실행하는 프로젝트를 만듭니다.
Jenkins 프로젝트를 만드는 방법
- 서버에서 Jenkins 대시보드로 이동합니다. 이렇게 하려면 http://<servername>:8080을 탐색합니다. 여기에서 <servername>은 Jenkins를 설치한 컴퓨터의 이름입니다.
- Jenkins 대시보드에서 New Item을 클릭합니다.
- Item name 필드에 프로젝트 이름을 입력합니다.
- 단일 빌드 구성을 사용하는 프로젝트를 만들려면 Freestyle project를 선택합니다.
- 서로 다른 여러 빌드 구성을 실행하는 프로젝트를 만들려면 Build multi-configuration project를 선택합니다. 여러 언어, 여러 Android API 수준 등 다양한 빌드 구성으로 앱을 빌드하려는 경우 다중 구성 프로젝트를 선택하는 것이 좋습니다.
- 저장을 클릭합니다.
프로젝트가 생성된 후 웹브라우저에 프로젝트의 기본 페이지가 표시됩니다.
버전 관리 및 Gradle 빌드 단계 추가
이 섹션에서는 GitHub 등의 버전 관리 시스템과 Jenkins를 통합하는 방법 및 소스 코드로부터 APK 패키지를 빌드하는 Gradle 빌드 단계를 추가하는 방법을 설명합니다.
GitHub 및 기타 버전 관리 시스템과 통합
GitHub 또는 다른 버전 관리 시스템을 사용하여 앱의 소스 코드를 관리하는 경우 앱의 업데이트가 체크인될 때마다 자동으로 빌드 및 테스트를 실행하도록 Jenkins를 구성할 수 있습니다. Jenkins에서 주기적으로 빌드를 실행하도록 구성할 수도 있습니다.
Jenkins 빌드 구성의 자세한 내용은 자동 빌드 구성을 참조하세요.
APK 패키지를 다시 빌드하는 Gradle 빌드 단계 추가
버전 관리 시스템을 사용하여 앱의 소스 코드를 관리하는 경우 Jenkins가 버전 관리 시스템에서 소스 코드를 다운로드할 때마다 새 APK 바이너리를 생성하는 Gradle 빌드 단계를 포함해야 합니다.
애플리케이션의 기본 디렉터리에서 다음 명령을 실행하는 빌드 단계를 추가합니다.
./gradlew :app:assembleDebug ./gradlew :app:assembleDebugAndroidTest
Test Lab으로 테스트할 때 Gradle이 생성한 APK 패키지를 사용하는 빌드 단계를 추가합니다. 이 경로를 아래의 셸 스크립트 예에서 <local_server_path>로 사용할 수 있습니다. 여기에서 <AppFolder>는 앱의 Android 스튜디오 프로젝트 폴더입니다.
<AppFolder>/app/build/outputs/apk
Jenkins에 Test Lab 빌드 단계 추가
이제 gcloud 명령줄을 사용하여 Test Lab을 실행하는 빌드 단계를 Jenkins에 추가할 준비가 되었습니다.
gcloud 빌드 단계를 추가하는 방법
- 프로젝트의 기본 페이지에서 Configure를 클릭합니다.
project configuration 페이지에서 Build 섹션까지 아래로 스크롤하고 Add build step 메뉴에서 Execute shell을 선택합니다.
Jenkins Execute shell command 창에 다음을 입력합니다. 이때 <local_server_path> 대신 서버의 샘플 앱 경로를, <app_apk> 대신 앱의 APK를, <app_test_apk> 대신 앱의 테스트 APK를 입력합니다.
gcloud firebase test android run --app <local_server_path>/<app_apk>.apk --test <local_server_path>/<app_test_apk>.apk
테스트 결과 분석
Test Lab에서 앱 테스트가 완료되면 Firebase Console이나 프로젝트의 Google Cloud Storage 버킷에서 테스트 결과를 검토할 수 있습니다. 위에 표시된 셸 명령어에 gsutil
명령어를 추가하여 테스트 결과 데이터를 로컬 컴퓨터로 복사할 수도 있습니다.
자세한 내용은 Firebase Test Lab 결과 분석을 참조하세요.
다른 CI 시스템과 지속적 통합
Firebase Test Lab을 다른 CI 시스템과 함께 사용하는 방법은 해당 문서를 참조하세요.