Możesz używać Firebase Test Lab podczas tworzenia aplikacji w dowolnym systemie ciągłej integracji (CI). Systemy 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 w Jenkins CI
Z tej sekcji dowiesz się, 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 w artykule Korzystanie z Firebase Test Lab w wierszu poleceń gcloud, aby utworzyć projekt 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 wyświetlaniu promptów CAPTCHA, które w innych przypadkach mogłyby blokować kompilacje CI. Utwórz konto usługi z rolą Edytujący w Google Cloudkonsoli, a następnie aktywuj je (instrukcje znajdziesz w dokumentacji polecenia 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 na stronie przeglądu danego interfejsu API kliknij Włącz API.
Instalowanie i konfigurowanie Jenkins
Jenkins CI możesz zainstalować i skonfigurować w systemie Linux lub Windows. Niektóre szczegóły tego przewodnika dotyczą instalowania i uruchamiania Jenkins CI w systemie Linux, w tym używania ukośników (/
) w ścieżkach do plików.
Aby pobrać i zainstalować Jenkinsa na komputerze z systemem Linux lub Windows, postępuj zgodnie z instrukcjami w artykule Instalowanie Jenkinsa. Po zainstalowaniu Jenkinsa postępuj zgodnie z instrukcjami w artykule 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 w Jenkinsie nie jest skonfigurowane uwierzytelnianie użytkowników ani kontrola dostępu. Zanim zaczniesz używać Jenkinsa z Firebase Test Lab, skonfiguruj globalne ustawienia zabezpieczeń, aby wymusić kontrolę dostępu i uwierzytelniać 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 Skonfiguruj zabezpieczenia globalne kliknij Włącz zabezpieczenia, a następnie Zapisz.
Więcej informacji o konfigurowaniu ustawień zabezpieczeń w Jenkinsie znajdziesz w tych artykułach: Quick and Simple Security, Standard Security Setup i Securing Jenkins.
Tworzenie projektu Jenkins
Następnie utwórz projekt do przeprowadzania testów w trybie ciągłej integracji aplikacji za pomocą Firebase Test Lab.
Tworzenie projektu 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:
- Aby utworzyć projekt, który korzysta z jednej konfiguracji kompilacji, kliknij Freestyle project (Projekt swobodny).
- Wybierz Build multi-configuration project (Skompiluj projekt z wieloma konfiguracjami), aby utworzyć projekt, który będzie działać w ramach różnych konfiguracji kompilacji. Jeśli planujesz tworzyć aplikację z różnymi konfiguracjami kompilacji (wiele wersji językowych, 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 kontroli wersji i kroków kompilacji Gradle
W tej sekcji opisujemy, jak zintegrować Jenkinsa z systemami kontroli wersji, takimi jak GitHub, oraz jak dodać kroki kompilacji Gradle, aby tworzyć 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 za każdym razem, gdy wprowadzane są zmiany w aplikacji, uruchamiał automatyczne kompilacje i testy. 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 utworzenia 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 za każdym razem, gdy Jenkins pobiera kod źródłowy z systemu kontroli wersji, tworzyć nowe pliki binarne APK.
Dodaj krok kompilacji, aby uruchomić te polecenia w głównym katalogu aplikacji:
./gradlew :app:assembleDebug ./gradlew :app:assembleDebugAndroidTest
Dodaj krok kompilacji, aby podczas testowania za pomocą Test Lab używać pakietów APK utworzonych przez Gradle. Możesz użyć tej ścieżki jako <local_server_path> w przykładzie skryptu powłoki podanym poniżej, gdzie <AppFolder> to folder projektu Android Studio dla Twojej aplikacji:
<AppFolder>/app/build/outputs/apk
Dodawanie Test Lab kroków kompilacji do Jenkinsa
Teraz możesz dodać do Jenkinsa krok kompilacji, aby uruchomić Test Lab za pomocą wiersza poleceń gcloud.
Aby dodać krok kompilacji gcloud
- Na stronie głównej projektu kliknij Skonfiguruj.
Na stronie konfiguracji projektu przewiń w dół do sekcji Kompilacja, a następnie w menu Dodaj krok kompilacji wybierz Wykonaj polecenie powłoki.
W oknie Jenkins Execute shell command (Jenkins – wykonaj polecenie powłoki) wpisz to polecenie, zastępując <local_server_path> ścieżką do przykładowej aplikacji na serwerze, <app_apk> pakietem APK aplikacji, a <app_test_apk> pakietem APK testu aplikacji:
gcloud firebase test android run --app <local_server_path>/<app_apk>.apk --test <local_server_path>/<app_test_apk>.apk
Analizowanie wyników testu
Po zakończeniu testowania aplikacji przez Test Lab możesz sprawdzić wyniki testu w konsoli Firebase lub w zasobniku Google Cloud Storage w projekcie. Do polecenia powłoki pokazanego powyżej możesz też dodać polecenie gsutil
, aby skopiować dane wyników testu na komputer lokalny.
Więcej informacji znajdziesz w sekcji Analizowanie wyników Firebase Test Lab.
Ciągła integracja z innymi systemami CI
Aby dowiedzieć się, jak używać Firebase Test Lab z innymi systemami CI, zapoznaj się z ich dokumentacją: