Rozpoczynanie testowania w systemach ciągłej integracji (CI)

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 LabJenkins CI.

Wymagania

Zanim zaczniesz korzystać z Firebase Test Lab w Jenkinsie, musisz wykonać te czynności:

  1. 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.

  2. 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ącyGoogle Cloudkonsoli, a następnie aktywuj je (instrukcje znajdziesz w dokumentacji polecenia gcloud auth activate-service-account).

  3. 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 APICloud 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ń

  1. 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.
  2. W panelu Jenkins kliknij Manage Jenkins (Zarządzaj aplikacją Jenkins), a następnie Configure Global Security (Skonfiguruj zabezpieczenia globalne).
  3. 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 SetupSecuring 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

  1. 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.
  2. W panelu Jenkinsa kliknij New Item (Nowy element).
  3. 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.
  4. 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.

  1. Dodaj krok kompilacji, aby uruchomić te polecenia w głównym katalogu aplikacji:

    ./gradlew :app:assembleDebug
    ./gradlew :app:assembleDebugAndroidTest
    

  2. 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

  1. Na stronie głównej projektu kliknij Skonfiguruj.
  2. Na stronie konfiguracji projektu przewiń w dół do sekcji Kompilacja, a następnie w menu Dodaj krok kompilacji wybierz Wykonaj polecenie powłoki.

  3. 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ą: