OmniLab Android Test Station

OmniLab ATS ist ein Testtool, mit dem Android-Entwickler und Testingenieure eine Benutzeroberfläche verwenden können, um Standard-Android-Test-Suites wie die Android Compatibility Test Suite (CTS) auszuführen. Dieses Tool fungiert als Weboberfläche für verschiedene Test-Frameworks wie Trade Federation (TF) und Google Mobly. Damit können Sie CTS- und Multi-Device-Tests auf einer Reihe von Testgeräten mit minimalem Aufwand ausführen und einen Zeitplan für die kontinuierliche Ausführung von Tests erstellen.

Einführung in OmniLab ATS 2.0

OmniLab ATS 2.0 migriert die zugrunde liegende Infrastruktur für die Testausführung von Trade Federation zu OmniLab. Diese Änderung sorgt für ein robusteres und effizienteres Backend, während die Benutzeroberfläche und die Workflows von OmniLab ATS 1.0 beibehalten werden.

Hauptvorteile von OmniLab ATS 2.0:

  • Modernisierte Infrastruktur: Nutzt die OmniLab-Plattform für verbesserte Stabilität und Leistung.
  • Nahtloser Übergang: Keine Änderungen an der Web-UI oder den Kernworkflows für die Testausführung.
  • Zukunftssicher: Es ist auf die einheitliche Testinfrastruktur von Google abgestimmt, sodass neue Funktionen schneller übernommen werden können.

OmniLab ATS 2.0 bietet neue Funktionen wie Bulk-Updates für Testpläne, erweiterte Gerätezuweisung und mehr. In den Versionshinweisen finden Sie Informationen zu Updates.

Upgrade auf OmniLab ATS 2.0:

Wenn du OmniLab ATS 2.0 verwenden möchtest, musst du deine Station auf Build R52 oder höher aktualisieren. Verwenden Sie das Flag --force_ats_version 2, um zum neuen Omnilab ATS 2.0 zu wechseln, und das Flag --force_update mit dem Befehl mtt start, um ein Upgrade auf den neuesten Build durchzuführen:

mtt start --force_ats_version 2 --force_update

Während der Migrationsphase empfehlen wir, das Tag dogfood zu verwenden, um auf den neuesten stabilen Build mit OmniLab ATS 2.0-Funktionen zuzugreifen:

mtt start --force_ats_version 2 --tag dogfood --force_update

Wir planen, OmniLab ATS 2.0 im dritten Quartal 2026 zur Standardversion zu machen. Wir planen, OmniLab ATS 1.0 bis Ende 2026 einzustellen.

Weitere Informationen zu bestimmten Updates, bekannten Unterschieden und Upgrade-Anleitungen finden Sie im OmniLab ATS 2.0-Upgrade-Leitfaden.

OmniLab ATS einrichten

In diesem Abschnitt wird erläutert, wie Sie OmniLab ATS installieren und einrichten.

OmniLab ATS verwendet Quellcode aus den folgenden Quellen:

OmniLab ATS installieren

Beachte alle Hardware- und Softwareanforderungen für die von dir ausgeführten Test-Suites.

Die Anforderungen für die CTS findest du unter source.android.com.

Für OmniLab ATS gibt es keine zusätzlichen Hardwareanforderungen. Wir empfehlen jedoch, die CTS-Hostanforderungen als Ausgangspunkt zu verwenden.

Es gibt zwei Möglichkeiten, OmniLab ATS zu installieren:

Mit dem Installationsprogramm installieren

Das Installationsprogramm wird unter Ubuntu 22.04 und höher unterstützt. Das Installationsprogramm installiert und konfiguriert alle Programme und Ressourcen, die zum Ausführen von OmniLab ATS erforderlich sind.

So verwenden Sie das Installationsprogramm:

  1. Führen Sie das Installationsprogramm aus:

    curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
    
  2. Führen Sie mtt version aus, um die installierte Version der OmniLab ATS CLI zu prüfen.

Manuell einbinden

Docker installieren
  1. Folgen Sie der Anleitung zur Installation der Docker Community Edition (CE) auf Ihrem Linux-Computer.

  2. Folgen Sie den Schritten nach der Installation, um Docker als Nicht-Root-Nutzer zu verwalten.

  3. Möglicherweise müssen Sie das Terminalfenster neu starten oder sich ab- und wieder anmelden, damit die Berechtigungsänderungen wirksam werden.

Python 3 installieren

Für die OmniLab ATS-Befehlszeile ist Ubuntu 22.04 oder höher erforderlich. Die Befehlszeile wird mit den Python-Versionen 3.10 bis 3.13 verifiziert.

Führen Sie die folgenden Befehle aus, um Python 3 zu installieren:

sudo apt-get update
sudo apt install python3 python3-distutils

Wenn Sie eine Version von Python 3 benötigen, die nicht in Ihrer Standarddistribution enthalten ist, fügen Sie zuerst das Repository für Python 3 hinzu. Führen Sie dazu einen der folgenden Schritte aus:

  • Führen Sie folgenden Befehl aus:

    sudo add-apt-repository ppa:deadsnakes/ppa
    
  • Erstellen und installieren Sie das Repository aus der Quelle.

Wenn Sie eine bestimmte Python 3-Version (z. B. 3.10) installieren möchten, führen Sie stattdessen diese Befehle aus:

sudo apt-get update
sudo apt install python3.10 python3.10-distutils

OmniLab ATS-Befehlszeile abrufen

Laden Sie hier das Befehlszeilenpaket herunter.

OmniLab-ATS starten

Starten Sie OmniLab ATS mit dem folgenden Befehl:

mtt start

Wenn die Benutzeroberfläche zum ersten Mal gestartet wird, kann es einige Minuten dauern, bis sie angezeigt wird. Die Befehlszeile zeigt eine Web-URL an, über die Sie in einem Browser auf die Benutzeroberfläche zugreifen können. Die Web-URL ist standardmäßig localhost:8000. Bei Bedarf können Sie den Standardport beim Start mit dem Flag --port ändern.

Falls eine neuere Version verfügbar ist, können Sie sie auf die aktuelle Version aktualisieren. Die neuesten Releases finden Sie in den Versionshinweisen.

Führen Sie folgenden Befehl aus, um auf die aktuelle Version zu aktualisieren:

mtt start --force_update

Führen Sie folgenden Befehl aus, um die Anwendung zu beenden:

mtt stop

Verwenden Sie den folgenden Befehl, um eine Liste anderer Befehle aufzurufen:

mtt --help

Datenbank sichern und wiederherstellen

Wenn Sie die OmniLab ATS-Datenbank sichern möchten, beenden Sie die App und führen Sie den folgenden Befehl aus. Dadurch wird die aktuelle Datenbank in einer TAR-Datei mit dem Namen mtt-backup.tar in Ihrem Basisverzeichnis gesichert:

docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar cvf /out/mtt-backup.tar ."

Führen Sie vor dem Starten der App den folgenden Befehl aus, um die Wiederherstellung durchzuführen:

docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar xvf /out/mtt-backup.tar"

Einrichtungsassistent

Nachdem Sie OmniLab ATS installiert und zum ersten Mal ausgeführt haben, führt Sie der Einrichtungsassistent durch einige Schritte, mit denen Sie das Tool für Ihre Umgebung anpassen können. Alle Änderungen, die Sie hier vornehmen, können später auf der Seite „Einstellungen“ neu konfiguriert werden.

Konfigurationssicherung wiederherstellen

Wenn Sie eine Konfigurationsdatei von einem anderen OmniLab ATS-Host gesichert haben, können Sie die Datei hochladen, um alle von diesem Host geänderten Konfigurationen zu kopieren. Klicken Sie dazu auf den Button Datei hochladen.

Konfigurationssicherung wiederherstellen

Abbildung 1. Konfigurationssicherung wiederherstellen

Standarddienstkonto festlegen

Sie können ein Dienstkonto festlegen, das OmniLab ATS standardmäßig für den Zugriff auf Ihre Ressourcen (z. B. Google Cloud Storage, Google Drive) verwendet. Klicken Sie zum Authentifizieren Ihres Dienstkontos auf Dienstkontoschlüssel hochladen und wählen Sie die JSON-Schlüsseldatei Ihres Dienstkontos aus.

Dienstkonto festlegen

Abbildung 2: Dienstkonto festlegen.

Wenn das Dienstkonto erfolgreich authentifiziert wurde, wird die E-Mail-Adresse des Kontos oben rechts auf der Seite angezeigt. Wenn Sie das Dienstkonto ändern möchten, klicken Sie auf den Kontonamen, entfernen Sie das aktuelle Standardkonto und laden Sie einen neuen Dienstkontoschlüssel hoch.

Dienstkonto ändern

Abbildung 3: Dienstkonto ändern

Konfigurationssätze importieren

Ein Konfigurationssatz ist ein Bundle von Konfigurationen zum Ausführen von Test-Suites, einschließlich zugehöriger Geräteaktionen und Build-Kanäle. Konfigurationssätze werden in einem bestimmten Google Cloud Storage-Bucket (GCS) gehostet. Nachdem Sie den GCS-Build-Kanal mit Ihrem Google-Konto authentifiziert haben, wird eine Liste aller verfügbaren Konfigurationssätze angezeigt.

Wählen Sie die Konfigurationssätze aus, die Sie Ihrem Test Station-Host hinzufügen möchten, und klicken Sie auf Ausgewählte importieren.

Konfigurationssätze importieren

Abbildung 4: Konfigurationssatz importieren

WLAN-Einstellungen einschließen

Für einige CTS-Tests muss dein Gerät mit einem WLAN-Hotspot verbunden sein. Geben Sie die WLAN-SSID und optional den WLAN-PSK ein, um Ihr WLAN auszuwählen.

WLAN-Einstellungen

Abbildung 5: WLAN-Hotspot-Einstellungen

Nachdem Sie den Einrichtungsassistenten abgeschlossen haben, wird die Seite mit den neuen Einstellungen neu geladen.

Gerät verbinden

USB-Debugging muss aktiviert sein, damit ein Gerät zum Testen verwendet werden kann. So aktivieren Sie das Debugging:

  1. Folgen Sie der Anleitung unter Entwickleroptionen und Debugging aktivieren.

  2. Wenn du Android-Test-Builds mit benutzerdefinierten ADB-Schlüsseln verwenden möchtest, lege die benutzerdefinierten .adb_key-Dateien im Verzeichnis ~/.android/ ab.

    Die Dateien werden automatisch geladen und an ADB übergeben, um das USB-Debugging nach dem Flashen des Geräts für Geräte mit diesen Builds automatisch zu aktivieren.

  3. Verbinde das Gerät über USB mit dem Hostcomputer.

    Das Gerät wird innerhalb einer Minute nach dem Aktualisieren der Weboberfläche auf dem OmniLab ATS-Tab „Geräte“ angezeigt. Auf diesem Tab können Sie auch den Status der Geräte einsehen.

    Gerät verbinden

    Abbildung 6. Gerät verbinden

Es gibt folgende Gerätestatus:

  • Verfügbar: Das Gerät ist verbunden und bereit für einen Test.
  • Zugewiesen: Das Gerät ist verbunden und führt einen Test aus. Auf jedem Gerät kann jeweils nur ein Test ausgeführt werden. Das Gerät muss also den aktuellen Test abschließen, bevor ein neuer ausgeführt werden kann.

Test starten

Test auswählen

OmniLab ATS enthält eine Reihe von vorkonfigurierten CTS-Konfigurationen. Wenn Sie einen dieser Tests ausführen möchten, rufen Sie den Tab „Test-Suites“ auf und klicken Sie für den ausgewählten Test auf Test ausführen.

Test auswählen

Abbildung 7. Test wird ausgewählt.

Informationen zum Bearbeiten oder Hinzufügen neuer Tests finden Sie unter Tests hinzufügen.

Testlauf konfigurieren

Bearbeiten Sie die Parameter, die für diesen Testlauf verwendet werden sollen. Die meisten Parameter sind mit Werten aus der ausgewählten Testkonfiguration vorausgefüllt.

Dieser Schritt kann mit den Standardwerten ausgeführt werden. Sie können jedoch alle Parameter wie Max. Wiederholungsversuche und Befehl an Ihre Anforderungen anpassen.

Testlauf konfigurieren

Abbildung 8. Testlauf konfigurieren

Die Parameter für den Testlauf sind:

  • Name: Name der Test-Suite, die Sie ausführen möchten.
  • Anzahl der Ausführungen: Gibt an, wie oft dieser Testlauf ausgeführt werden soll, wenn er geplant ist. Testläufe werden mit Trade Federation geplant. Damit können bis zu 20 Testläufe parallel ausgeführt werden, sofern die Kapazität dafür vorhanden ist.
  • Maximale Wiederholungsversuche: Maximale Anzahl von Wiederholungsversuchen für einen Testlauf, wenn mindestens ein Test fehlschlägt. In der Regel wird dieser Wert auf 4–6 Wiederholungen für einen vollständigen CTS-Durchlauf festgelegt, um instabile Tests zu berücksichtigen.
  • Zeitüberschreitung in der Warteschlange: Wenn ein Testlauf zu lange im Status In der Warteschlange bleibt, wird er automatisch abgebrochen. Geben Sie hier die Wartezeit vor dem Abbruch an. Der Standardwert ist 24 Stunden.
  • Befehl: Der Befehl zum Ausführen der Test-Suite. Hier können Sie zusätzliche Befehlszeilenargumente eingeben. Führe beispielsweise ein bestimmtes Modul in CTS 8.1 mit folgendem Befehl aus:

    cts-suite -m ShortModuleName
    
  • Befehl wiederholen: Der Befehl zum Wiederholen einer Test-Suite. Hier können Sie zusätzliche Befehlszeilenargumente hinzufügen. Wenn Sie beispielsweise nur ein bestimmtes Modul in CTS 8.1 wiederholen möchten, verwenden Sie:

    cts --retry 0 -m ShortModuleName
    

    Die Argumente für die Wiederholung können sich von denen unterscheiden, die beim ersten Befehl verfügbar waren. Prüfen Sie daher die unterstützten Parameter auf der offiziellen Website für die ausgewählte Test-Suite.

  • Vorheriger Testlauf: Wenn Sie einen vorherigen Testlauf wiederholen möchten:

    • Lokal: Wenn die Ausführung auf dem aktuellen Host gestartet wurde, geben Sie die ID des Testlaufs ein, die Sie in den Details des Testlaufs sehen.

      Lokaler vorheriger Testlauf

      Abbildung 9. Lokaler vorheriger Testlauf.

    • Remote: Wenn der Testlauf auf einem anderen Host gestartet wurde, lade die Datei mit den Testergebnissen hoch, indem du Remote auswählst, auf Datei mit Testergebnissen hochladen klickst und eine Datei aus deinem lokalen Speicher auswählst.

      Vorherigen Testlauf entfernen

      Abbildung 10. Entfernen Sie den vorherigen Testlauf.

Ausgewählte Geräte

Klicken Sie die Kästchen an, um die Geräte auszuwählen, die für die Ausführung der Test-Suite zugewiesen werden sollen. Die Anzahl der Shards sollte sich automatisch an die Anzahl der ausgewählten Geräte anpassen.

Geräte auswählen

Abbildung 11. Geräte auswählen

Wenn Sie Geräte nach anderen Attributen als der Geräteseriennummer auswählen möchten, können Sie die Gerätespezifikationen manuell eingeben. Wenn Sie beispielsweise drei Geräte mit dem Produktnamen „bramble“ auswählen möchten, geben Sie Folgendes ein:

product:bramble;product:bramble;product:bramble

Folgende Attribute werden unterstützt:

  • build_id
  • device_serial
  • device_type
  • Hostname
  • Produkt
  • product_variant
  • sim_state

Alle ausgewählten Geräte müssen den Status Verfügbar haben, damit der Testlauf ausgeführt werden kann. Wenn der Testlauf ausgeführt wird, wechseln sie alle in den Status Zugewiesen. Ein Testlauf befindet sich im Status In der Warteschlange, während er darauf wartet, dass Geräte verfügbar werden.

Geräteaktionen hinzufügen

Geräteaktionen sind Skripts, die vor jedem Testlauf ausgeführt werden können. Einige Geräteaktionen sind bereits konfiguriert, z. B. das Flashen und Neustarten. Informationen zum Erstellen neuer Geräteaktionen finden Sie unter Neue Geräteaktion erstellen.

Geräteaktionen

Abbildung 12. Geräteaktionen

Wenn Sie einem Testlauf eine Geräteaktion hinzufügen möchten, klicken Sie auf Neue Aktion hinzufügen, setzen Sie ein Häkchen bei den hinzuzufügenden Aktionen und klicken Sie auf Aktion(en) hinzufügen. Geräteaktionen werden nacheinander ausgeführt. Du kannst die Aktionen per Drag-and-drop neu anordnen.

Aktionen hinzufügen

Abbildung 13. Aktionen werden neu angeordnet.

Testressourcen festlegen

Testressourcen sind Dateien, die zum Ausführen eines Testlaufs erforderlich sind. Für die Ausführung der CTS ist beispielsweise eine android-cts*.zip-Datei erforderlich und für das Flashen eines Geräts muss das Build-Image bereitgestellt werden.

Die Download-URL für die ZIP-Datei der Test-Suite sollte standardmäßig auf die Google Drive-Links verweisen, die Partnern zur Verfügung gestellt werden. Sie können eine andere Datei auswählen, indem Sie auf Durchsuchen klicken. Im Pop-up-Fenster können Sie einen Downloadlink für eine Datei eingeben, eine Datei aus einem authentifizierten Build-Kanal verwenden oder eine Datei aus dem lokalen Speicher hochladen.

Testressourcen

Abbildung 14. Testressourcen.

Unten sehen Sie das Pop-up-Fenster zum Auswählen einer Testressource über eine Web-URL. Sie können den Download-URL-Link eingeben und auf Auswählen klicken, um die Auswahl zu bestätigen.

Testressourcenauswahl – Web-URL

Abbildung 15. Testressourcenauswahl – Web-URL.

Wenn Sie Ressourcen in Google Drive, Google Cloud Storage (GCS) oder andere Kanäle hochgeladen haben, können Sie auch den Tab des jeweiligen Kanals aufrufen und dort Ressourcen auswählen. Hier ist ein Beispiel für die Auswahl einer Ressource aus Google Drive.

Testressourcenauswahl – Google Drive

Abbildung 16. Ressourcenauswahl testen – Google Drive.

Im Feld Dateiname werden nicht nur Dateien, sondern auch Platzhalterzeichen unterstützt. Die Dokumentation dazu finden Sie hier.

Testressourcenauswahl – Unterstützung von Platzhaltermustern

Abbildung 17. Testressourcenauswahl – Unterstützung von Platzhaltermustern.

Sie können auch eine Datei aus dem lokalen Dateispeicher von OmniLab ATS auswählen. Sie können Dateien in diesen Speicher hochladen oder lokale Dateien und Verzeichnisse direkt verwenden.

Testressourcenauswahl – Lokaler Dateispeicher

Abbildung 18. Testressourcenauswahl – Lokaler Dateispeicher.

Konfigurationen für die erneute Ausführung hinzufügen

Sie können Wiederholungen planen, die nach Abschluss des primären Laufs beginnen und dessen Ergebnisse laden, aber andere Geräte, Aktionen oder Ressourcen verwenden können.

Konfigurationen für die erneute Ausführung hinzufügen

Abbildung 19. Konfigurationen für die erneute Ausführung werden hinzugefügt.

Testlauf starten

Nachdem Sie die für den Testlauf erforderlichen Informationen eingegeben haben, klicken Sie auf Testlauf starten. Wenn alle Informationen gültig sind, wird der Testlauf gestartet und Sie werden zu einer Seite weitergeleitet, auf der Sie die Details und den Fortschritt des Testlaufs sehen können.

Testlauf starten

Abbildung 20. Testlauf starten

Testplan erstellen

Testpläne werden verwendet, um Testläufe nach einem regelmäßigen Zeitplan zu erstellen. Beispiel: CTS 9.0 wird täglich um 17:00 Uhr ausgeführt. Wenn Sie einen neuen Testplan erstellen möchten, klicken Sie auf Neuen Testplan erstellen.

Testplan erstellen

Abbildung 21. Testplan erstellen

Testplan konfigurieren

Geben Sie den Namen des Testplans und alle Labels ein, die Sie hinzufügen möchten. Wählen Sie dann einen Zeitplan aus.

  • Manuell: Der Testplan erstellt nur dann Testläufe, wenn ein Nutzer auf der Listenseite des Testplans auf Testplan ausführen klickt.
  • Regelmäßig: Der Testplan plant Testläufe automatisch nach dem ausgewählten regelmäßigen Zeitplan. Beispiel: Sie können einen Testlauf jeden Tag um 17:00 Uhr planen.
  • Benutzerdefiniert: Der Testplan plant Testläufe automatisch basierend auf dem eingegebenen Cron-Ausdruck. Wenn Sie beispielsweise jeden Tag um 17:00 Uhr einen Testlauf planen möchten, lautet der Cron-Ausdruck 0 17 * * *.

Testplan konfigurieren

Abbildung 22. Testplan konfigurieren

Test-Suites hinzufügen

Füge Test-Suites hinzu, die vom Testplan geplant werden sollen, indem du auf + Testlaufkonfiguration hinzufügen klickst. Wählen Sie im Drop-down-Menü Name eine Test-Suite aus und klicken Sie auf Nächster Schritt. Wählen Sie dann die Geräte aus, auf denen Sie den Test ausführen möchten, und klicken Sie auf Konfiguration hinzufügen. Sie können für jeden Testplan mehrere Konfigurationen hinzufügen.

Testlauf konfigurieren

Abbildung 23. Testlauf konfigurieren

Geräteaktionen hinzufügen

Fügen Sie die Geräteaktionen hinzu, die vor jedem Testlauf ausgeführt werden sollen. Weitere Informationen findest du unter Geräteaktionen hinzufügen.

Geräteaktionen hinzufügen

Abbildung 24: Geräteaktionen hinzufügen

Testressourcen festlegen

Das Hinzufügen von Testressourcen zu Testplänen funktioniert genauso wie das Hinzufügen zu einzelnen Testläufen. Weitere Informationen finden Sie unter Testressourcen festlegen.

Testressourcen festlegen

Abbildung 25. Testressourcen werden festgelegt.

Testläufe ansehen

Liste der Testläufe

Rufen Sie die Liste der geplanten Testläufe auf der Seite „Testläufe“ auf. Klicken Sie auf Ansehen, um weitere Details zu einem Testlauf aufzurufen.

Sie können die Liste auch filtern, indem Sie einen String in die Filterleiste eingeben und die Eingabetaste drücken. Sie können mehrere Filter verwenden, indem Sie sie durch ein Komma trennen. Der Filter gibt alle Zeilen zurück, die den genauen Text (keine Teilstring-Übereinstimmung) in einer beliebigen Spalte enthalten, mit Ausnahme von Status und Erstellt.

Ein leerer Filter gibt alle Zeilen zurück. Derzeit ist es nicht möglich, nach Zeilen mit leeren Werten zu filtern.

Liste der Testläufe

Abbildung 26: Liste der Testläufe.

Details zum Testlauf

Hier können Sie sich die Details eines Testlaufs ansehen, z. B. den Status, die Logs und die Ergebnisse.

Details zum Testlauf

Abbildung 27. Details zum Testlauf.

Testlaufstatus

Der Fortschritt eines Testlaufs wird im Abschnitt „Status“ angezeigt. Wenn es eine zugehörige Meldung gibt, z. B. zum Downloadfortschritt, zum Grund für den Abbruch oder eine Fehlermeldung, wird diese hier ebenfalls angezeigt.

Status des Testlaufs

Abbildung 28. Status des Testlaufs.

Die Testlaufstatus sind:

  • Ausstehend: Erforderliche Ressourcen werden heruntergeladen.
  • In der Warteschlange: Der Test kann ausgeführt werden, sobald ein Gerät verfügbar ist.
  • Wird ausgeführt: Der Test wird auf einem zugewiesenen Gerät ausgeführt.
  • Abgeschlossen: Der Test ist abgeschlossen und die Ergebnisse wurden gemeldet.
  • Abgebrochen: Der Test wurde vom Nutzer abgebrochen oder es ist ein Zeitüberschreitungsfehler aufgetreten, während versucht wurde, verfügbare Geräte zu finden.
  • Fehler: Es ist ein Fehler aufgetreten, der die Ausführung des Tests verhindert hat.

Testlauf abbrechen

Wenn der Testlauf noch nicht abgeschlossen ist, können Sie ihn abbrechen, indem Sie auf Abbrechen und dann im Bestätigungsdialogfeld auf Ja klicken. Testläufe werden auch automatisch abgebrochen, wenn sie länger als im Feld queue_timeout_seconds angegeben im Status In der Warteschlange bleiben. Wenn Sie einen Testlauf im Status Wird ausgeführt abbrechen, kann es einige Minuten dauern, bis der Abbruch wirksam wird.

Testlauf abbrechen

Abbildung 29. Testlauf abbrechen

Ergebnisse des Testlaufs

Nach Abschluss eines Testlaufs werden die Ergebnisse erfasst und angezeigt. Wenn Sie auf den Pfeil für die einzelnen Ausführungen klicken, werden weitere Details angezeigt. Klicken Sie auf Ausgabedateien ansehen, um die erfassten Testartefakte wie test_result.xml und test_result_failures.html aufzurufen.

Ergebnisse des Testlaufs

Abbildung 30. Ergebnisse des Testlaufs.

Auf dem Tab „Logs“ können Sie Live-Host- und Tradefed-Logs ansehen.

Testlaufprotokolle

Abbildung 31. Tab „Logs“.

Die Ergebnisse für einzelne Module finden Sie auf dem Tab „Test Results“ (Testergebnisse).

Tab „Testergebnisse“

Abbildung 32. Tab „Testergebnisse“

Sie können die als Testressourcen verwendeten Dateien herunterladen, indem Sie auf dem Tab „Testressourcen“ auf Öffnen klicken.

Tab „Testressourcen“

Abbildung 33. Tab „Testressourcen“.

Wenn Sie sich die Details des Testlaufs ansehen möchten, z. B. create_time, rufen Sie den Tab „Konfiguration“ auf.

Tab „Testkonfiguration“

Abbildung 34: Tab „Konfiguration“.

Erweiterte Funktionen

Konfigurationsdateien verwalten

OmniLab ATS verwendet in YAML geschriebene Konfigurationsdateien, um vordefinierte Optionen wie Tests, Build-Kanäle und Geräteaktionen zu laden. Hier ein Beispiel für eine Konfigurationsdatei:

// example_file.yaml
tests:
- id : android.cts.9_0.arm
  name: CTS 9.0 (ARM)
  test_resource_defs:
  - name: android-cts.zip
    default_download_url: https://dl.google.com/dl/android/cts/android-cts-9.0_r7-linux_x86-arm.zip
    test_resource_type: TEST_PACKAGE
  command: cts
  env_vars:
  - name: TF_PATH
    value: ${TF_WORK_DIR}/android-cts/tools:${TF_WORK_DIR}/android-cts/testcases
  - name: LD_LIBRARY_PATH
    value: ${TF_WORK_DIR}/android-cts/lib:${TF_WORK_DIR}/android-cts/lib64
  setup_scripts:
  output_file_patterns:
  - android-cts/logs/latest/.*
  - android-cts/results/latest/.*\.html
  - android-cts/results/latest/compatibility_result\..*
  - android-cts/results/latest/logo.png
  - android-cts/results/latest/test_result.xml
  result_file: test_result.xml
  java_properties:
  - name: CTS_ROOT
    value: ${TF_WORK_DIR}
  context_file_dir: android-cts/results/
  context_file_pattern: '[\d_\.]+\.zip'
  retry_command_line: retry --retry 0
  runner_sharding_args: --shard-count ${TF_SHARD_COUNT}

build_channels:
- id: google_drive
  name: Google Drive
  provider_name: Google Drive

device_actions:
- id: flash
  name: Flash
  test_resource_defs:
  - name: bootloader.img
    test_resource_type: DEVICE_IMAGE
  - name: radio.img
    test_resource_type: DEVICE_IMAGE
  - name: img.zip
    test_resource_type: DEVICE_IMAGE
  tradefed_target_preparers:
  - class_name: com.android.tradefed.targetprep.RunHostCommandTargetPreparer
    option_values:
    - name: work-dir
      values:
      - ${TF_WORK_DIR}
    - name: host-setup-command
      values:
      - adb -s $SERIAL reboot-bootloader
      - fastboot -s $SERIAL flash bootloader bootloader.img
      - fastboot -s $SERIAL flash radio radio.img
      - fastboot -s $SERIAL reboot-bootloader
      - fastboot -s $SERIAL -w update img.zip
      - adb -s $SERIAL wait-for-device
    - name: host-cmd-timeout
      values:
      - 10m

Wenn Sie Ihre OmniLab ATS-Instanz einrichten, können Sie Ihre Konfiguration für andere Nutzer freigeben, indem Sie sie als Datei exportieren. Rufen Sie dazu die Seite „Einstellungen“ auf und klicken Sie rechts oben auf Exportieren.

Verwaltung von Konfigurationsdateien

Abbildung 35. Verwaltung von Konfigurationsdateien.

Nachdem die Konfigurationsdatei heruntergeladen wurde, können Sie sie für andere Nutzer freigeben. Sie können die Konfigurationsdatei ihrer OmniLab ATS-Instanz hinzufügen, indem sie auf Importieren klicken und die Konfigurationsdatei auswählen.

Neue Geräteaktion erstellen

Geräteaktionen werden verwendet, um die Einrichtung von Geräten zu automatisieren. Aktionen sind Skripts, die vor jedem Testlauf, einschließlich Wiederholungen, auf jedem Gerät ausgeführt werden, auf dem der Test läuft. Eine Liste der verfügbaren Geräteaktionen finden Sie auf der Seite „Einstellungen“ auf dem Tab „Geräteaktionen“. Einige Geräteaktionen sind bereits konfiguriert, z. B. Neustart und Flashen.

Tab „Geräteaktionen“

Abbildung 36. Tab „Geräteaktionen“

Neue Geräteaktion hinzufügen

  1. Klicken Sie auf Neue Geräteaktion.

    Aktionsbutton „Neues Gerät“

    Abbildung 37: Aktionsbutton für neues Gerät.

  2. Geben Sie einen Namen und eine Beschreibung ein.

    Name der Geräteaktion

    Abbildung 38: Name der Geräteaktion.

  3. Klicken Sie auf Zielvorbereiter hinzufügen.

  4. Geben Sie den vollständigen Klassennamen des Trade Federation-Zielvorbereiters ein, z. B. com.android.tradefed.targetprep.RunHostCommandTargetPreparer.

    Zielvorbereiter hinzufügen

    Abbildung 39: Zielvorbereiter hinzufügen

    Eine Liste der verfügbaren Zielvorbereiter findest du in der Referenz zu com.android.tradefed.targetprep.

    Liste der Ziel-Preparer

    Abbildung 40: Liste der Zielvorbereiter.

  5. Fügen Sie alle Optionen hinzu, die mit dem Zielvorbereiter verwendet werden sollen. Wenn Sie die verfügbaren Optionen aufrufen möchten, suchen Sie im AOSP nach dem Quellcode für jeden Zielvorbereiter (targetprep):

    Beispiel für eine Aktionsoption

    Abbildung 41. Beispiel für eine Aktionsoption.

  6. Wenn Sie eine Option hinzufügen möchten, klicken Sie auf Option für Zielvorbereiter hinzufügen und geben Sie die erforderlichen Werte ein.

    Beispiel für einen Aktionsbefehl

    Abbildung 42: Beispiel für einen Aktionsbefehl.

  7. Definieren Sie die Testressourcen, die zum Ausführen der Geräteaktion erforderlich sind, z. B. Build-Images zum Flashen. Klicken Sie auf Testressource hinzufügen und füllen Sie die erforderlichen Felder aus, um eine Ressourcendefinition hinzuzufügen. Wenn Sie wissen, wo sich Ihre Dateien befinden, können Sie eine Standard-Download-URL angeben, indem Sie auf Durchsuchen klicken. Wenn die Zielvorbereiter das Verzeichnis als Testressource akzeptieren, wählen Sie Dekomprimieren aus. Geben Sie dann das relative Zielverzeichnis unter dem temporären Arbeitsverzeichnis und die zu dekomprimierenden Dateinamen an. Wenn keine Dateinamen angegeben sind, werden alle Dateien aus der Testressource dekomprimiert.

    Testressourcen für Aktionen

    Abbildung 43: Testressourcen für Aktionen.

  8. Klicken Sie auf Aktualisieren.

    Aktion „Änderungen speichern“

    Abbildung 44: Aktion „Änderungen speichern“.

Tests verwalten

Test bearbeiten

Wenn Sie einen gespeicherten Test bearbeiten möchten, rufen Sie die Seite „Tests“ auf und klicken Sie in der Zeile des Tests, den Sie ändern möchten, auf Bearbeiten. Klicken Sie nach dem Ändern der Testkonfiguration auf Aktualisieren.

Test bearbeiten

Abbildung 45: Test bearbeiten

Neuen Test hinzufügen

Wenn Sie einen neuen Test hinzufügen möchten, rufen Sie die Seite „Tests“ auf und klicken Sie auf Neuen Test erstellen. Geben Sie die entsprechenden Informationen ein und klicken Sie auf Erstellen.

Test erstellen

Abbildung 46: Test erstellen

Test kopieren

Abbildung 47. Test kopieren

Hostkonfigurationen exportieren

Nachdem Sie einen Host konfiguriert haben, können Sie die Konfigurationen des Hosts in eine Datei exportieren. Sie können diese Datei auf andere Hosts hochladen, um die gespeicherten Konfigurationen zu kopieren.

Wenn Sie die Konfigurationen eines Hosts exportieren möchten, rufen Sie die Seite „Einstellungen“ auf und klicken Sie rechts oben auf Exportieren.

Hostkonfigurationen exportieren

Abbildung 48: Hostkonfiguration exportieren

Wenn Sie eine Hostkonfigurationsdatei importieren möchten, rufen Sie die Seite „Einstellungen“ auf und klicken Sie rechts oben auf Importieren.

Hostkonfigurationen werden importiert

Abbildung 49. Hostkonfiguration importieren

Lokale Dateien und Verzeichnisse verwenden

Ab Version R11 sind Dateien im Verzeichnis $HOME/.ats_storage automatisch in OmniLab ATS zugänglich. Kopieren oder verschieben Sie eine Datei in dieses Verzeichnis. Sie können sie dann auf dem Tab Lokale Datei auswählen, wenn Sie einen Testlauf planen.

cp /path/to/file $HOME/.ats_storage

Lokale Datei auswählen

Abbildung 50: Datei aus dem Verzeichnis $HOME/.ats_storage auswählen.

Mit dem Flag --mount_local_path können Sie zusätzliche Verzeichnisse im lokalen Dateispeicher bereitstellen.

mtt start --mount_local_path=/path/to/dir1 --mount_local_path=/path/to/dir2:renamed_dir2

Zusätzliche bereitgestellte Verzeichnisse

Abbildung 51. Zusätzliche Verzeichnisse, die im lokalen Dateispeicher bereitgestellt werden.

Multi-Host-Modus aktivieren

Im Multi-Host-Modus können Nutzer einen einzelnen ATS-Controller-Host verwenden, um die Geräte und Tests auf mehreren ATS-Worker-Hosts zu verwalten.

Architektur im Multi-Host-Modus

Abbildung 52. Architektur im Multi-Host-Modus.

  1. Verwenden Sie den folgenden Befehl, um den ATS-Controller zu starten:

    mtt start --operation_mode=ON_PREMISE
    
  2. Prüfen Sie, ob der Controller unter http://${CONTROLLER_HOSTNAME}:8000 erreichbar ist.

  3. Verwenden Sie den folgenden Befehl, um die Worker zu starten:

    mtt start --control_server_url=http://CONTROLLER_HOSTNAME:8000 --operation_mode=ON_PREMISE
    

Wenn Ihr Netzwerk die Kommunikation zwischen Hosts nicht zulässt, müssen Sie die unten stehende Anleitung zur erweiterten Einrichtung des ATS-Workers befolgen.

  1. Verbinden Sie die beiden Hosts über SSH-Tunnel. Wählen Sie Ports für den primären und den Dateiserver-Port aus, z. B. 9000 und 9006.

    ssh -L ATS_PORT:localhost:8000 -L FS_PORT:localhost:8006 CONTROLLER_HOSTNAME
    
  2. Konfigurieren und starten Sie ATS.

    DOCKER_GATEWAY_IP_ADDRESS=$(ip -4 addr show dev docker0 | grep -Eo 'inet [.0-9]+/' | grep -Eo '[.0-9]+')
    socat tcp-listen:ATS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:ATS_PORT &
    socat tcp-listen:FS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:FS_PORT &
    mtt start --control_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:ATS_PORT \
                    --control_file_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:FS_PORT \
                    --operation_mode=ON_PREMISE
    

Dateireiniger

Der Dateireiniger ist ein Cronjob, der stündlich ausgeführt wird, um Dateien anhand von benutzerdefinierten Konfigurationen zu bereinigen. ATS hat zwei Standardkonfigurationen zum Archivieren von Testergebnissen und zum Löschen temporärer Dateien. In diesem Leitfaden wird beschrieben, wie Sie die Richtlinien und Konfigurationen anpassen, um Ihre Dateien effektiv zu verwalten.

Richtlinien

Eine Richtlinie definiert den Vorgang, der für Dateien oder Verzeichnisse ausgeführt werden soll, und die Kriterien für die Auswahl von Zielen. Die verfügbaren Vorgänge sind in der Tabelle aufgeführt:

VorgangstypParameter
ARCHIVEremove_file: Wenn true, wird die Datei nach der Archivierung entfernt.
DELETE

Die Kriterien basieren auf Dateiattributen und Systeminformationen. Die verfügbaren Kriterien sind in der Tabelle aufgeführt:

KriteriumstypBeschreibungParameter
LAST_MODIFIED_TIMEDateien nach dem Datum und der Uhrzeit der letzten Änderung filtern.ttl: Es werden verschiedene Arten von Zeitausdrücken unterstützt, z. B. 10m, 2h, 7 days, 4w. Informationen zu unterstützten Formaten finden Sie unter pytimeparse.
LAST_ACCESS_TIMEFiltern Sie Dateien nach dem Datum und der Uhrzeit des letzten Zugriffs.Identisch mit LAST_MODIFIED_TIME.
NAME_MATCHDateien anhand ihres Namens mithilfe eines regulären Ausdrucks filtern.pattern: Regulärer Ausdruck, z. B. [a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}\.zip, um ZIP-Dateien mit Ergebnissen abzugleichen.
SYSTEM_AVAILABLE_SPACEAktionen basierend auf dem verfügbaren Speicherplatz im System auslösen.threshold: Aktion auslösen, wenn der verfügbare Speicherplatz unter den Schwellenwert fällt, z. B. 200(B), 200KB, 200MB, 200GB, 2TB.

Neue Richtlinie für Dateireiniger

Abbildung 53. Fügen Sie eine neue Richtlinie für die Dateibereinigung hinzu.

Konfigurationen

Eine Konfiguration kombiniert eine oder mehrere Richtlinien mit bestimmten Verzeichnissen. Die Dateien und Verzeichnisse in den angegebenen Verzeichnissen werden gemäß den definierten Richtlinien verarbeitet. Richtlinien werden in der Reihenfolge angewendet, in der sie in der Konfiguration angezeigt werden.

Alle Zielverzeichnisse müssen sich im Verzeichnis /data befinden. Wenn in Ihrer Konfiguration das Zielverzeichnis als logs angegeben ist, wird es als /data/logs interpretiert.

Konfiguration des Dateireinigers bearbeiten

Abbildung 54. Bearbeiten Sie die Konfiguration des Dateireinigers.

Zurücksetzen

Wenn Sie auf Einstellungen zurücksetzen klicken, wird die Konfiguration des Dateireinigers auf den Standardzustand zurückgesetzt. Dadurch werden ALLE benutzerdefinierten Elemente gelöscht.

Einstellungen für die Dateibereinigung zurücksetzen

Abbildung 55: Einstellungen für die Dateibereinigung zurücksetzen.

Support

Fehlerberichte

Ihr Beitrag zu OmniLab ATS hilft uns, das Tool zu verbessern. Wir freuen uns auf Ihr Feedback. Weitere Informationen zum neuesten Release findest du in den OmniLab ATS-Versionshinweisen. Wenn Sie Fehler melden oder Vorschläge machen möchten, reichen Sie einen Fehlerbericht ein. Partner sollten Fehler oder Vorschläge über ihre Partnerkanäle melden.