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 Cloud konsoli, 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 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 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 Utwórz projekt z wieloma konfiguracjami, aby utworzyć projekt, który będzie działać w różnych konfiguracjach 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> 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 testu

Po zakończeniu testowania aplikacji przez Test Lab możesz sprawdzić wyniki testu w konsoli Firebase lub w zasobniku Google Cloud Storage w swoim 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ą: