Sie können Firebase Test Lab verwenden, wenn Sie Ihre App mit einem beliebigen Continuous-Integration-System (CI) entwickeln. Mit Continuous-Integration-Systemen können Sie Ihre App automatisch erstellen und testen lassen, 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:
gcloud einrichten 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.
Dienstkonto erstellen und autorisieren Dienstkonten unterliegen keinen Spamprüfungen oder Captcha-Aufforderungen, die Ihre CI-Builds ansonsten blockieren könnten. Erstellen Sie ein Dienstkonto mit der Rolle Editor in der Google Cloud-Konsole und aktivieren Sie es dann (siehe Dokumentation zu gcloud auth activate-service-account).
Erforderliche APIs aktivieren Nachdem Sie sich mit dem Dienstkonto angemeldet haben: Aktivieren Sie auf der Seite der 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ägstrichen (/
) 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 keine Nutzerauthentifizierung und Zugriffssteuerung konfiguriert. Bevor Sie Jenkins mit Firebase Test Lab verwenden, konfigurieren Sie die globalen Sicherheitseinstellungen, um die Zugriffssteuerung zu erzwingen und Nutzer zu authentifizieren.
Globale Sicherheitseinstellungen konfigurieren
- 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.
- Klicken Sie im Jenkins-Dashboard auf Manage Jenkins (Jenkins verwalten) und dann auf Configure Global Security (Globale Sicherheit konfigurieren).
- Klicken Sie auf der Seite Globale Sicherheit konfigurieren auf Sicherheit aktivieren und dann auf Speichern.
Weitere Informationen zum Konfigurieren von Sicherheitseinstellungen für Jenkins finden Sie unter Quick and Simple Security, Standard Security Setup und Securing Jenkins.
Jenkins-Projekt erstellen
Als Nächstes erstellen Sie ein Projekt, um Continuous Integration-Tests für Ihre App mit Firebase Test Lab auszuführen.
Jenkins-Projekt erstellen
- 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.
- Klicken Sie im Jenkins-Dashboard auf New Item (Neues Element).
- Geben Sie im Feld Name des Elements einen Namen für Ihr Projekt ein:
- Wählen Sie Freestyle project (Freestyle-Projekt) aus, um ein Projekt mit einer einzelnen Build-Konfiguration zu erstellen.
- Wählen Sie Build multi-configuration project (Projekt mit mehreren Konfigurationen erstellen) aus, um ein Projekt zu erstellen, das mit mehreren verschiedenen Build-Konfigurationen ausgeführt wird. Wenn Sie Ihre App mit verschiedenen Build-Konfigurationen (mehrere Sprachen, mehrere Android-API-Ebenen usw.) erstellen möchten, ist ein Projekt mit mehreren Konfigurationen die beste Wahl.
- Klicken Sie auf Speichern.
Nachdem Ihr Projekt erstellt wurde, wird in Ihrem Webbrowser die Hauptseite für Ihr Projekt angezeigt.
Versionskontrolle und Gradle-Build-Schritte hinzufügen
In diesem Abschnitt wird beschrieben, wie Sie Jenkins in Versionskontrollsysteme wie GitHub einbinden und wie Sie Gradle-Build-Schritte hinzufügen, um APK-Pakete aus Quellcode zu erstellen.
Einbindung in GitHub und andere Versionsverwaltungssysteme
Wenn Sie GitHub oder ein anderes Revisionskontrollsystem zum Verwalten des Quellcodes für Ihre App verwenden, können Sie Jenkins so konfigurieren, dass jedes Mal, wenn Updates für Ihre App eingecheckt werden, automatische Builds und Tests ausgeführt 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-Build-Schritte zum Neuerstellen von APK-Paketen hinzufügen
Wenn Sie ein Revisionskontrollsystem zum Verwalten des Quellcodes für Ihre App verwenden, müssen Sie einen Gradle-Build-Schritt einfügen, um jedes Mal neue APK-Binärdateien zu erstellen, wenn Jenkins Quellcode aus Ihrem Revisionskontrollsystem herunterlädt.
Fügen Sie einen Build-Schritt hinzu, um die folgenden Befehle im Hauptverzeichnis Ihrer Anwendung auszuführen:
./gradlew :app:assembleDebug ./gradlew :app:assembleDebugAndroidTest
Fügen Sie einen Build-Schritt 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 unten angegebenen Shell-Script-Beispiel verwenden. <AppFolder> ist dabei der Android Studio-Projektordner für Ihre App:
<AppFolder>/app/build/outputs/apk
Test Lab-Build-Schritte in Jenkins hinzufügen
Jetzt können Sie Jenkins einen Build-Schritt hinzufügen, um Test Lab über die gcloud-Befehlszeile auszuführen.
gcloud-Build-Schritt hinzufügen
- Klicken Sie auf der Hauptseite für Ihr Projekt auf Konfigurieren.
Scrollen Sie auf der Seite Projektkonfiguration nach unten zum Bereich Build und wählen Sie dann im Menü Build-Schritt hinzufügen die Option Shell ausführen aus.
Geben Sie im Fenster Jenkins Execute shell command Folgendes ein und ersetzen Sie <local_server_path> durch den Pfad zur Beispielanwendung auf dem Server, <app_apk> durch das APK Ihrer App und <app_test_apk> durch das 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 gezeigten Shell-Befehl auch einen gsutil
-Befehl hinzufügen, um die Testdatenergebnisse auf Ihren lokalen Computer zu kopieren.
Weitere Informationen zum Analysieren von Firebase Test Lab-Ergebnissen
Continuous Integration mit anderen CI-Systemen
Informationen zur Verwendung von Firebase Test Lab mit anderen CI-Systemen finden Sie in der jeweiligen Dokumentation: