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

Możesz używać Firebase Test Lab podczas tworzenia aplikacji przy użyciu dowolnego systemu ciągłej integracji (CI). Systemy trybu ciągłej integracji umożliwiają automatyczne kompilowanie i testowanie aplikacji za każdym razem, gdy wprowadzasz aktualizacje w jej kodzie źródłowym.

Korzystanie z Firebase Test Lab z Jenkins CI

W tej sekcji opisano, jak używać Test Lab z Jenkins CI.

Wymagania

Zanim zaczniesz używać Firebase Test Lab z Jenkins, musisz wykonać te czynności:

  1. Skonfiguruj gcloud. Postępuj zgodnie z instrukcjami podanymi w artykule Korzystanie z Firebase Test Lab w wierszu poleceń gcloud, aby utworzyć projekt w Firebase i skonfigurować lokalne środowisko pakietu SDK Google Cloud.

  2. Utwórz i autoryzuj konto usługi. Konta usługi nie podlegają kontroli antyspamowej ani nie są wyświetlane dla nich monity 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).

  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 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 kliknij Włącz interfejs API na stronie przeglądu danego interfejsu API.

Instalowanie i konfigurowanie Jenkinsa

Możesz zainstalować i skonfigurować Jenkins CI w systemie Linux lub Windows. Niektóre szczegóły w tym przewodniku 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 podanymi w artykule Instalowanie Jenkinsa. Po zainstalowaniu aplikacji Jenkins postępuj zgodnie z instrukcjami podanymi w artykule Starting and Accessing Jenkins (Uruchamianie aplikacji Jenkins i uzyskiwanie do niej dostępu), aby dokończyć konfigurację i uzyskać dostęp do panelu Jenkins.

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 uwierzytelnianie 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 Configure Global Security (Skonfiguruj zabezpieczenia globalne) kliknij Enable security (Włącz zabezpieczenia), a następnie Save (Zapisz).

Więcej informacji o konfigurowaniu ustawień zabezpieczeń w Jenkins znajdziesz w artykułach Quick and Simple Security (Szybkie i proste zabezpieczenia), Standard Security Setup (Standardowa konfiguracja zabezpieczeń) i Securing Jenkins (Zabezpieczanie Jenkins).

Tworzenie projektu Jenkinsa

Następnie utwórz projekt do przeprowadzania testów aplikacji w trybie ciągłej integracji za pomocą Firebase Test Lab.

Tworzenie projektu Jenkinsa

  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:
    • Wybierz Freestyle project (Projekt dowolny), aby utworzyć projekt, który używa jednej konfiguracji kompilacji.
    • Wybierz Build multi-configuration project (Utwórz projekt z wieloma konfiguracjami), aby utworzyć projekt, który działa w wielu różnych konfiguracjach kompilacji. Jeśli planujesz utworzyć aplikację z różnymi konfiguracjami kompilacji (wiele języków, 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 kroków kompilacji Gradle i kontroli wersji

W tej sekcji opisano, jak zintegrować Jenkinsa z systemami kontroli wersji, takimi jak GitHub, oraz jak dodać kroki kompilacji Gradle, aby skompilować 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 uruchamiał kompilacje i testy za każdym razem, gdy aktualizacje aplikacji zostaną zatwierdzone. Możesz też skonfigurować Jenkinsa tak, aby okresowo uruchamiał kompilacje.

Więcej informacji o konfigurowaniu kompilacji w Jenkinsie znajdziesz w artykule o konfigurowaniu kompilacji automatycznych.

Dodawanie kroków kompilacji Gradle w celu ponownego skompilowania 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.

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

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

  2. Dodaj krok kompilacji, aby używać pakietów APK utworzonych przez Gradle podczas testowania za pomocą Test Lab. Możesz użyć tej ścieżki jako <local_server_path> w podanym niżej przykładowym skrypcie powłoki, gdzie <AppFolder> to folder projektu Android Studio Twojej aplikacji:

    <AppFolder>/app/build/outputs/apk
    

Dodawanie kroków kompilacji Test Lab do Jenkinsa

Teraz możesz dodać do Jenkinsa krok kompilacji, aby uruchomić Test Lab za pomocą wiersza poleceń gcloud.

Dodawanie kroku kompilacji gcloud

  1. Na stronie głównej projektu kliknij Skonfiguruj.
  2. Na stronie konfiguracji 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ę).

  3. W oknie Jenkins Execute shell command (Polecenie powłoki Jenkins Execute) wpisz poniższe polecenie, zastępując <local_server_path> ścieżką do przykładowej aplikacji na serwerze, <app_apk> plikiem APK aplikacji, a <app_test_apk> testowym plikiem 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 testu

Gdy Test Lab zakończy testowanie aplikacji, możesz sprawdzić wyniki testu 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 testu na komputer lokalny. Więcej informacji znajdziesz w artykule Analizowanie wyników Firebase Test Lab.

Tryb ciągłej integracji z innymi systemami CI

Aby dowiedzieć się, jak używać Firebase Test Lab z innymi systemami CI, zapoznaj się z ich dokumentacją: