Możesz używać Firebase Test Lab podczas tworzenia aplikacji za pomocą dowolnego systemu 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 w Jenkins CI.
Wymagania
Zanim zaczniesz używać Firebase Test Lab w Jenkinsie, wykonaj te czynności:
Skonfiguruj gcloud. Postępuj zgodnie z instrukcjami w artykule Używanie polecenia Firebase Test Lab w wierszu poleceń gcloud, aby utworzyć projekt Firebase i skonfigurować lokalny środowisko pakietu SDK Google Cloud.
Utwórz i autoryzuj konto usługi. Konta usług nie podlegają weryfikacji spamu ani prośbom o rozwiązanie 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 API w Konsoli Google Developers Console włącz Google Cloud Testing API i Cloud Tool Results API. Aby je włączyć, wpisz ich nazwy w polu wyszukiwania u góry konsoli, a potem na stronie podsumowania danego interfejsu API kliknij Włącz interfejs API.
Instalowanie i konfigurowanie Jenkinsa
Możesz zainstalować i skonfigurować Jenkins CI na systemie Linux lub Windows. Niektóre szczegóły w tym przewodniku dotyczą instalacji i uruchamiania Jenkins CI w systemie Linux, w tym użycia ukośnika (/
) w ścieżkach plików.
Aby pobrać i zainstalować Jenkinsa na komputerze z systemem Linux lub Windows, wykonaj instrukcje instalowania Jenkinsa. Po zainstalowaniu Jenkinsa postępuj zgodnie z instrukcjami dotyczącymi uruchamiania i dostępu do Jenkinsa, aby dokończyć konfigurację i otworzyć panel sterowania Jenkinsa.
Konfigurowanie globalnych ustawień zabezpieczeń
Po zainstalowaniu Jenkins nie ma skonfigurowanej kontroli dostępu ani uwierzytelniania użytkowników. Zanim zaczniesz używać Jenkinsa z Firebase Test Lab, skonfiguruj ustawienia zabezpieczeń globalnych, aby wymusić kontrolę dostępu i uwierzytelnianie użytkowników.
Konfigurowanie globalnych ustawień 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 Jenkins kliknij kolejno Zarządzaj Jenkinsem i Skonfiguruj zabezpieczenia globalne.
- Na stronie Skonfiguruj zabezpieczenia globalne kliknij Włącz zabezpieczenia, a następnie kliknij Zapisz.
Więcej informacji o konfigurowaniu ustawień zabezpieczeń Jenkinsa znajdziesz w artykułach Szybkie i proste zabezpieczenia, Standardowa konfiguracja zabezpieczeń oraz Bezpieczeństwo Jenkinsa.
Tworzenie projektu Jenkinsa
Następnie utwórz projekt do przeprowadzania testów ciągłej integracji aplikacji za pomocą Firebase Test Lab.
Tworzenie projektu 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 Jenkins kliknij Nowy element.
- Wpisz nazwę projektu w polu Nazwa produktu:
- Wybierz Projekt swobodny, aby utworzyć projekt, który używa jednej konfiguracji kompilacji.
- Aby utworzyć projekt, który będzie działał w różnych konfiguracjach kompilacji, wybierz Utwórz projekt wielokonfiguracyjny. Jeśli planujesz kompilować aplikację z różnymi konfiguracjami kompilacji (wiele lokalizacji, wiele poziomów interfejsu API Androida itp.), najlepszym rozwiązaniem będzie projekt z wieloma konfiguracjami.
- Kliknij Zapisz.
Po utworzeniu projektu przeglądarka wyświetli jego stronę główną.
Dodaj kontrolę wersji i etapów kompilacji Gradle
W tej sekcji opisaliśmy, jak zintegrować Jenkinsa z systemami kontroli wersji, takimi jak GitHub, oraz jak dodać kroki kompilacji Gradle, aby skompilować pakiety APK na podstawie 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ł kompilacje automatyczne i testy za każdym razem, gdy wdrożysz aktualizacje aplikacji. Możesz też skonfigurować Jenkinsa tak, aby okresowo uruchamiał kompilacje.
Więcej informacji o konfigurowaniu kompilacji w Jenkinsie znajdziesz w artykule Konfigurowanie kompilacji automatycznych.
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 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 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ładowym skrypcie powłoki, w którym <local_server_path> to ścieżka do folderu projektu Android Studio Twojej aplikacji:
<AppFolder>/app/build/outputs/apk
Dodawanie Test Lab etapów kompilacji 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 Kompilacja, a potem w menu Dodaj krok kompilacji kliknij Wykonaj w powłoce powłoki.
W oknie Jenkins Wykonaj polecenie powłoki wpisz następujące polecenie, zastępując <local_server_path> ścieżką do przykładowej aplikacji na serwerze, <app_apk> pakietem APK aplikacji, a <app_test_apk> testowym pakietem 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
Gdy Test Lab zakończy testowanie aplikacji, możesz sprawdzić wyniki testu w konsoli Firebase lub w grupie Google Cloud Storage w projekcie. Aby skopiować dane wyników testu na komputer lokalny, możesz też dodać do polecenia powłoki pokazanego powyżej polecenie gsutil
.
Więcej informacji znajdziesz w artykule Analizowanie wyników Firebase Test Lab.
ciągłej integracji z innymi systemami CI,
Aby dowiedzieć się, jak używać Firebase Test Lab z innymi systemami CI, zapoznaj się z tymi dokumentami: