Mit Continuous-Integration-Systemen (CI) testen

Sie können Firebase Test Lab bei der Entwicklung Ihrer App mit jedem CI-System (Continuous Integration) verwenden. Mit Continuous-Integration-Systemen können Sie Ihre App jedes Mal automatisch erstellen und testen, wenn Sie Updates für den Quellcode Ihrer App einchecken.

Firebase Test Lab mit Jenkins CI verwenden

In diesem Abschnitt wird beschrieben, wie Sie Test Lab mit Jenkins CI verwenden.

Voraussetzungen

Bevor Sie Firebase Test Lab mit Jenkins verwenden können, müssen Sie die folgenden Schritte ausführen:

  1. Richten Sie gcloud ein. Folgen Sie der Anleitung unter Firebase Test Lab über die gcloud-Befehlszeile verwenden, um ein Firebase-Projekt zu erstellen und Ihre lokale Google Cloud SDK-Umgebung zu konfigurieren.

  2. Erstellen und autorisieren Sie ein Dienstkonto. Dienstkonten unterliegen keinen Spam-Prüfungen oder Captcha-Aufforderungen, die Ihre CI-Builds andernfalls blockieren könnten. Erstellen Sie in der Google Cloud-Konsole ein Dienstkonto mit der Rolle Bearbeiter und aktivieren Sie es. Weitere Informationen finden Sie in der Dokumentation zu gcloud auth activate-service-account.

  3. Aktivieren Sie die erforderlichen APIs. Nach der Anmeldung mit dem Dienstkonto: Aktivieren Sie auf der Seite „API-Bibliothek“ der Google Developers Console die Google Cloud Testing API und die Cloud Tool Results API. Wenn Sie diese APIs aktivieren möchten, geben Sie die API-Namen in das Suchfeld oben in der Console ein und klicken Sie dann auf der Übersichtsseite der jeweiligen API auf API aktivieren.

Jenkins installieren und einrichten

Sie können Jenkins CI unter Linux oder Windows installieren und einrichten. Bestimmte Details in diesem Leitfaden beziehen sich speziell auf die Installation und Ausführung von Jenkins CI unter Linux, einschließlich der Verwendung von Schrägstriche (/) in Dateipfaden.

Wenn Sie Jenkins auf einem Computer mit Linux oder Windows herunterladen und installieren möchten, folgen Sie der Anleitung unter Jenkins installieren. Folgen Sie nach der Installation von Jenkins der Anleitung unter Jenkins starten und darauf zugreifen, um die Einrichtung abzuschließen und auf das Jenkins-Dashboard zuzugreifen.

Globale Sicherheitseinstellungen konfigurieren

Bei der Erstinstallation von Jenkins sind die Nutzerauthentifizierung und die Zugriffssteuerung nicht konfiguriert. Bevor Sie Jenkins mit Firebase Test Lab verwenden, müssen Sie die globalen Sicherheitseinstellungen konfigurieren, um die Zugriffssteuerung zu erzwingen und Nutzer zu authentifizieren.

Globale Sicherheitseinstellungen konfigurieren

  1. Rufen Sie das Jenkins-Dashboard auf Ihrem Server auf. Rufen Sie dazu http://<servername>:8080 auf, wobei <servername> der Name des Computers ist, auf dem Sie Jenkins installiert haben.
  2. Klicken Sie im Jenkins-Dashboard auf Jenkins verwalten und dann auf Globale Sicherheit konfigurieren.
  3. Klicken Sie auf der Seite Globale Sicherheit konfigurieren auf Sicherheit aktivieren und dann auf Speichern.

Weitere Informationen zum Konfigurieren der Sicherheitseinstellungen für Jenkins finden Sie unter Schnell und einfach für Sicherheit sorgen, Standardsicherheitseinrichtung und Jenkins sichern.

Jenkins-Projekt erstellen

Erstellen Sie als Nächstes ein Projekt, um mit Firebase Test Lab kontinuierliche Integrationstests für Ihre App auszuführen.

Jenkins-Projekt erstellen

  1. Rufen Sie das Jenkins-Dashboard auf Ihrem Server auf. Rufen Sie dazu http://<servername>:8080 auf, wobei <servername> der Name des Computers ist, auf dem Sie Jenkins installiert haben.
  2. Klicken Sie im Jenkins-Dashboard auf Neues Element.
  3. Geben Sie im Feld Artikelname einen Namen für Ihr Projekt ein:
    • Wählen Sie Freestyle-Projekt aus, um ein Projekt mit einer einzelnen Buildkonfiguration zu erstellen.
    • Wählen Sie Build multi-configuration project (Projekt mit mehreren Konfigurationen erstellen) aus, um ein Projekt zu erstellen, das in mehreren verschiedenen Build-Konfigurationen ausgeführt wird. Wenn Sie Ihre App mit verschiedenen Build-Konfigurationen (z. B. mehreren Sprachen oder mehreren Android-API-Ebenen) erstellen möchten, ist ein Projekt mit mehreren Konfigurationen die beste Wahl.
  4. Klicken Sie auf Speichern.

Nachdem das Projekt erstellt wurde, wird in Ihrem Webbrowser die Hauptseite des Projekts angezeigt.

Versionskontrolle und Gradle-Buildschritte hinzufügen

In diesem Abschnitt wird beschrieben, wie Sie Jenkins in Versionskontrollsysteme wie GitHub einbinden und Gradle-Buildschritte hinzufügen, um APK-Pakete aus dem Quellcode zu erstellen.

Einbindung in GitHub und andere Versionskontrollsysteme

Wenn Sie GitHub oder ein anderes Versionskontrollsystem zum Verwalten des Quellcodes Ihrer App verwenden, können Sie Jenkins so konfigurieren, dass automatisierte Builds und Tests ausgeführt werden, sobald Updates für Ihre App eingecheckt werden. Sie können Jenkins auch so konfigurieren, dass Builds regelmäßig ausgeführt werden.

Informationen zum Konfigurieren von Builds in Jenkins finden Sie unter Automatische Builds konfigurieren.

Gradle-Buildschritte zum Neuaufbau von APK-Paketen hinzufügen

Wenn Sie zum Verwalten des Quellcodes Ihrer App ein Versionskontrollsystem verwenden, müssen Sie einen Gradle-Buildschritt einfügen, um jedes Mal, wenn Jenkins Quellcode aus Ihrem Versionskontrollsystem herunterlädt, neue APK-Binärdateien zu erstellen.

  1. Fügen Sie einen Buildschritt hinzu, um die folgenden Befehle im Hauptverzeichnis Ihrer Anwendung auszuführen:

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

  2. Fügen Sie einen Buildschritt hinzu, um die von Gradle erstellten APK-Pakete beim Testen mit Test Lab zu verwenden. Sie können diesen Pfad als <local_server_path> im folgenden Beispiel für ein Shell-Script verwenden. Dabei ist <AppFolder> der Android Studio-Projektordner für Ihre App:

    <AppFolder>/app/build/outputs/apk
    

Test Lab Buildschritte zu Jenkins hinzufügen

Jetzt können Sie Jenkins einen Buildschritt hinzufügen, um Test Lab mit der gcloud-Befehlszeile auszuführen.

So fügen Sie einen gcloud-Buildschritt hinzu:

  1. Klicken Sie auf der Hauptseite Ihres Projekts auf Konfigurieren.
  2. Scrollen Sie auf der Seite Projektkonfiguration nach unten zum Abschnitt Build und wählen Sie im Menü Buildschritt hinzufügen die Option Shell ausführen aus.

  3. Geben Sie im Fenster Jenkins Execute shell command (Jenkins-Befehl zum Ausführen von Shell-Befehlen) Folgendes ein. Ersetzen Sie dabei <local_server_path> durch den Pfad zur Beispielanwendung auf dem Server, <app_apk> durch die APK Ihrer App und <app_test_apk> durch die Test-APK Ihrer App:

    gcloud firebase test android run --app <local_server_path>/<app_apk>.apk
    --test <local_server_path>/<app_test_apk>.apk
    

Testergebnisse analysieren

Nachdem Test Lab die Tests Ihrer App abgeschlossen hat, können Sie die Testergebnisse in der Firebase-Konsole oder in einem Google Cloud Storage-Bucket in Ihrem Projekt ansehen. Sie können dem oben genannten Shell-Befehl auch den Befehl gsutil hinzufügen, um die Testergebnisdaten auf Ihren lokalen Computer zu kopieren. Weitere Informationen finden Sie unter Firebase Test Lab-Ergebnisse analysieren.

Continuous Integration mit anderen CI-Systemen

Weitere Informationen zur Verwendung von Firebase Test Lab mit anderen CI-Systemen finden Sie in den jeweiligen Dokumenten: