Podczas tworzenia aplikacji możesz korzystać z Firebase Test Lab 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 wprowadzisz zmiany w jej kodzie źródłowym.
Korzystanie z Firebase Test Lab w Jenkins CI
W tej sekcji opisujemy, jak korzystać z Test Lab z Jenkins CI.
Wymagania
Zanim zaczniesz korzystać z Firebase Test Lab w Jenkinsie, musisz wykonać te czynności:
Skonfiguruj gcloud. Aby utworzyć projekt w Firebase i skonfigurować lokalne środowisko Google Cloud pakietu SDK , postępuj zgodnie z instrukcjami w artykule Korzystanie z Firebase Test Lab z wiersza poleceń gcloud.
Utwórz i autoryzuj konto usługi. Konta usługi nie podlegają sprawdzaniu spamu ani nie wyświetlają próśb o wpisanie kodu captcha, które mogłyby zablokować kompilacje CI. Utwórz konto usługi z rolą Edytujący w konsoli Google Cloud i aktywuj je (informacje o tym, jak to zrobić, znajdziesz w dokumentacji gcloud auth activate-service-account ).
Włącz wymagane interfejsy API. Po zalogowaniu się za pomocą konta usługi: na stronie Biblioteka API w konsoli Google Developers, 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 Jenkinsa
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 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 zainstalowaniu Jenkinsa nie ma w nim 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 uwierzytelniać użytkowników.
Aby skonfigurować globalne ustawienia zabezpieczeń:
- Otwórz panel Jenkinsa na serwerze. Aby to zrobić, otwórz adres http://<servername>:8080 , gdzie <servername> to nazwa komputera, na którym zainstalowano Jenkinsa.
- W panelu Jenkinsa kliknij Manage Jenkins (Zarządzaj aplikacją Jenkins), a następnie kliknij Configure Global Security (Skonfiguruj zabezpieczenia globalne).
- Na stronie Configure Global Security kliknij Enable security, a następnie kliknij Save.
Więcej informacji o konfigurowaniu ustawień zabezpieczeń w Jenkinsie znajdziesz w artykułach Quick and Simple Security (Szybkie i proste zabezpieczenia), Standard Security Setup (Standardowa konfiguracja zabezpieczeń) i Securing Jenkins (Zabezpieczanie Jenkinsa).
Tworzenie projektu Jenkinsa
Następnie utwórz projekt do przeprowadzania testów w trybie ciągłej integracji aplikacji za pomocą Firebase Test Lab.
Aby utworzyć projekt Jenkinsa:
- Otwórz panel Jenkinsa na serwerze. Aby to zrobić, otwórz adres 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 Item name (Nazwa elementu):
- Aby utworzyć projekt, który używa jednej konfiguracji kompilacji, wybierz Freestyle project (Projekt dowolny).
- Aby utworzyć projekt, który działa w wielu różnych konfiguracjach kompilacji, wybierz Build multi-configuration project (Kompiluj projekt z wieloma konfiguracjami). Jeśli planujesz kompilować aplikację z różnymi konfiguracjami kompilacji (wieloma ustawieniami regionalnymi, wieloma poziomami interfejsu Android API itp.), najlepszym rozwiązaniem będzie projekt z wieloma konfiguracjami.
- Kliknij Save (Zapisz).
Po utworzeniu projektu przeglądarka wyświetli jego stronę główną.
Dodawanie kroków kontroli wersji i kompilacji Gradle
W tej sekcji opisujemy, 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 automatycznie kompilował i testował aplikację za każdym razem, gdy wprowadzisz w niej zmiany. Możesz też skonfigurować Jenkinsa tak, aby kompilował aplikację okresowo.
Więcej informacji o konfigurowaniu kompilacji w Jenkinsie znajdziesz w artykule Konfigurowanie automatycznych kompilacji.
Dodawanie kroków kompilacji Gradle w celu ponownego kompilowania pakietów APK
Jeśli do zarządzania kodem źródłowym aplikacji używasz systemu kontroli wersji, musisz dodać krok kompilacji Gradle, aby za każdym razem, gdy Jenkins pobierze kod źródłowy z systemu kontroli wersji, tworzyć nowe pliki binarne APK.
Dodaj krok kompilacji, aby uruchamiać te polecenia w głównym katalogu aplikacji:
./gradlew :app:assembleDebug ./gradlew :app:assembleDebugAndroidTest
Dodaj krok kompilacji, aby podczas testowania używać pakietów APK utworzonych przez Gradle z Test Lab. Możesz użyć tej ścieżki jako <local_server_path> w podanym poniżej przykładzie skryptu powłoki, gdzie <AppFolder> to folder projektu Android Studio Twojej aplikacji:
<AppFolder>/app/build/outputs/apk
Dodawanie Test Lab kroków kompilacji do Jenkinsa
Teraz możesz dodać krok kompilacji do Jenkinsa, aby uruchamiać Test Lab za pomocą wiersza poleceń gcloud.
Aby dodać krok kompilacji gcloud:
- Na stronie głównej projektu kliknij Configure (Skonfiguruj).
Na stronie project configuration (konfiguracja 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 Jenkinsa) wpisz to polecenie, zastępując <local_server_path> ścieżką do przykładowej aplikacji na serwerze, <app_apk> plikiem APK aplikacji, a <app_test_apk> plikiem 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 testów
Gdy Test Lab zakończy testowanie aplikacji, możesz sprawdzić wyniki testów 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 testów na komputer lokalny.
Więcej informacji znajdziesz w artykule
Analizowanie wynikówFirebase Test Lab.
Tryb ciągłej integracji z innymi systemami CI
Aby dowiedzieć się, jak korzystać z Firebase Test Lab w innych systemach CI, zapoznaj się z ich dokumentacją: