Podczas tworzenia aplikacji możesz używać Firebase Test Lab w dowolnym systemie ciągłej integracji (CI). Systemy trybu ciągłej integracji umożliwiają automatyczne kompilowanie i testowanie aplikacji za każdym razem, gdy wprowadzasz zmiany w jej kodzie źródłowym.
Korzystanie z Firebase Test Lab z Jenkins CI
W tej sekcji opisano, jak używać Test Lab z Jenkins CI.
Wymagania
Zanim zaczniesz korzystać z Firebase Test Lab w Jenkinsie, musisz wykonać te czynności:
Skonfiguruj gcloud. Postępuj zgodnie z instrukcjami podanymi w artykule Korzystanie z Firebase Test Lab w wierszu poleceń gcloud, aby utworzyć projekt w Firebase i skonfigurować lokalne środowisko pakietu SDK Google Cloud.
Utwórz i autoryzuj konto usługi. Konta usługi nie podlegają sprawdzaniu pod kątem spamu ani nie są wyświetlane dla nich prośby o rozwiązanie testu CAPTCHA, które mogłyby blokować kompilacje CI. Utwórz konto usługi z rolą Edytujący w konsoli Google Cloud, a następnie je aktywuj (aby dowiedzieć się, jak to zrobić, zapoznaj się z dokumentacją gcloud auth activate-service-account).
Włącz wymagane interfejsy API. Po zalogowaniu się za pomocą konta usługi: na stronie Biblioteka interfejsów API w Google Developers Console włącz Google Cloud Testing API i Cloud Tool Results API. Aby włączyć te interfejsy API, wpisz ich nazwy w polu wyszukiwania u góry konsoli, a następnie kliknij Włącz interfejs API na stronie przeglądu danego interfejsu API.
Instalowanie i konfigurowanie Jenkinsa
Możesz zainstalować i skonfigurować Jenkins CI w systemie Linux lub Windows. Niektóre szczegóły w tym przewodniku dotyczą instalowania i uruchamiania Jenkins CI w systemie Linux, w tym używania ukośników (/) w ścieżkach plików.
Aby pobrać i zainstalować Jenkinsa na komputerze z systemem Linux lub Windows, postępuj zgodnie z instrukcjami podanymi w artykule Installing Jenkins (Instalowanie Jenkinsa). Po zainstalowaniu Jenkinsa postępuj zgodnie z instrukcjami podanymi w artykule Starting and Accessing Jenkins (Uruchamianie Jenkinsa i uzyskiwanie do niego dostępu), aby dokończyć konfigurację i uzyskać dostęp do panelu Jenkinsa.
Konfigurowanie globalnych ustawień zabezpieczeń
Po pierwszej instalacji Jenkins nie ma skonfigurowanego uwierzytelniania użytkowników ani kontroli dostępu. Zanim zaczniesz używać Jenkinsa z Firebase Test Lab, skonfiguruj globalne ustawienia zabezpieczeń, aby wymusić kontrolę dostępu i uwierzytelnianie użytkowników.
Konfigurowanie globalnych ustawień zabezpieczeń
- Otwórz panel Jenkins na serwerze. Aby to zrobić, otwórz stronę http://<servername>:8080, gdzie <servername> to nazwa komputera, na którym zainstalowano Jenkinsa.
- W panelu Jenkins kliknij Manage Jenkins (Zarządzaj aplikacją Jenkins), a następnie Configure Global Security (Skonfiguruj zabezpieczenia globalne).
- Na stronie Configure Global Security (Skonfiguruj zabezpieczenia globalne) kliknij Enable security (Włącz zabezpieczenia), a następnie Save (Zapisz).
Więcej informacji o konfigurowaniu ustawień zabezpieczeń w Jenkins znajdziesz w artykułach Quick and Simple Security (Szybkie i proste zabezpieczenia), Standard Security Setup (Standardowa konfiguracja zabezpieczeń) i Securing Jenkins (Zabezpieczanie Jenkins).
Tworzenie projektu Jenkinsa
Następnie utwórz projekt, aby przeprowadzić testy aplikacji w trybie ciągłej integracji za pomocą Firebase Test Lab.
Aby utworzyć projekt Jenkins:
- Otwórz panel Jenkins na serwerze. Aby to zrobić, otwórz stronę http://<servername>:8080, gdzie <servername> to nazwa komputera, na którym zainstalowano Jenkinsa.
- W panelu Jenkinsa kliknij New Item (Nowy element).
- Wpisz nazwę projektu w polu Nazwa elementu:
- Wybierz Freestyle project (Projekt dowolny), aby utworzyć projekt, który używa pojedynczej konfiguracji kompilacji.
- Wybierz Build multi-configuration project (Utwórz projekt z wieloma konfiguracjami), aby utworzyć projekt, który działa w wielu różnych konfiguracjach kompilacji. Jeśli planujesz utworzyć aplikację z różnymi konfiguracjami kompilacji (wiele języków, wiele poziomów interfejsu API Androida itp.), najlepszym wyborem będzie projekt z wieloma konfiguracjami.
- Kliknij Zapisz.
Po utworzeniu projektu w przeglądarce wyświetli się jego strona główna.
Dodawanie kroków kontroli wersji i kompilacji Gradle
W tej sekcji opisano, jak zintegrować Jenkinsa z systemami kontroli wersji, takimi jak GitHub, oraz jak dodać kroki kompilacji Gradle, aby kompilować pakiety APK z kodu źródłowego.
Integracja z GitHubem i innymi systemami kontroli wersji
Jeśli do zarządzania kodem źródłowym aplikacji używasz GitHuba lub innego systemu kontroli wersji, możesz skonfigurować Jenkinsa tak, aby uruchamiał automatyczne kompilacje i testy za każdym razem, gdy aktualizacje aplikacji zostaną zatwierdzone. Możesz też skonfigurować Jenkinsa tak, aby okresowo uruchamiał kompilacje.
Więcej informacji o konfigurowaniu kompilacji w Jenkinsie znajdziesz w artykule Konfigurowanie automatycznych kompilacji.
Dodawanie kroków kompilacji Gradle w celu ponownego skompilowania pakietów APK
Jeśli do zarządzania kodem źródłowym aplikacji używasz systemu kontroli wersji, musisz uwzględnić krok kompilacji Gradle, aby tworzyć nowe pliki binarne APK za każdym razem, gdy Jenkins pobiera kod źródłowy z systemu kontroli wersji.
Dodaj krok kompilacji, aby uruchomić te polecenia w katalogu głównym aplikacji:
./gradlew :app:assembleDebug ./gradlew :app:assembleDebugAndroidTest
Dodaj krok kompilacji, aby używać pakietów APK utworzonych przez Gradle podczas testowania za pomocą Test Lab. Możesz użyć tej ścieżki jako <local_server_path> w podanym niżej przykładowym skrypcie powłoki, gdzie <AppFolder> to folder projektu Android Studio Twojej aplikacji:
<AppFolder>/app/build/outputs/apk
Dodawanie kroków kompilacji Test Lab do Jenkinsa
Teraz możesz dodać do Jenkinsa krok kompilacji, aby uruchomić Test Lab za pomocą wiersza poleceń gcloud.
Dodawanie kroku kompilacji gcloud
- Na stronie głównej projektu kliknij Skonfiguruj.
Na stronie konfiguracji projektu przewiń w dół do sekcji Build (Kompilacja), a następnie w menu Add build step (Dodaj krok kompilacji) wybierz Execute shell (Wykonaj powłokę).
W oknie Jenkins Execute shell command (Polecenie powłoki Jenkins Execute) wpisz poniższe polecenie, zastępując <local_server_path> ścieżką do przykładowej aplikacji na serwerze, <app_apk> plikiem APK aplikacji, a <app_test_apk> testowym plikiem APK aplikacji:
gcloud firebase test android run --app <local_server_path>/<app_apk>.apk --test <local_server_path>/<app_test_apk>.apk
Analizowanie wyników testów
Gdy Test Lab zakończy testowanie aplikacji, możesz sprawdzić wyniki testu w konsoli Firebase lub w zasobniku Google Cloud Storage w projekcie. Możesz też dodać polecenie gsutil do polecenia powłoki pokazanego powyżej, aby skopiować dane wyników testu na komputer lokalny.
Więcej informacji znajdziesz w artykule Analizowanie wyników Firebase Test Lab.
Tryb ciągłej integracji z innymi systemami CI
Aby dowiedzieć się, jak używać Firebase Test Lab z innymi systemami CI, zapoznaj się z ich dokumentacją: