OmniLab Android Test Station

OmniLab ATS ist ein Testtool, mit dem Android-Entwickler und ‑Tester eine Benutzeroberfläche zum Ausführen von Standard-Android-Testsuiten wie der Android Compatibility Test Suite (CTS) verwenden können. Dieses Tool dient als Weboberfläche für verschiedene Testframeworks wie Trade Federation (TF) und Google Mobly. Damit können Sie CTS- und Multi-Device-Tests auf einer Reihe von Testgeräten mit minimalem Setup ausführen und einen Zeitplan für das kontinuierliche Ausführen von Tests erstellen.

OmniLab ATS einrichten

In diesem Abschnitt wird beschrieben, wie Sie OmniLab ATS installieren und einrichten.

OmniLab ATS verwendet Quellcode aus den folgenden Quellen:

OmniLab ATS installieren

Beachten Sie alle Hardware- und Softwareanforderungen für die Test-Suites, die Sie ausführen.

Die Anforderungen für CTS finden Sie 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:

Installation mit dem Installationsprogramm

Unter Ubuntu 20.04 und höher installiert und konfiguriert das Installationsprogramm 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 installieren

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

  2. Folgen Sie der Anleitung nach der Installation für die Verwaltung von Docker als Nicht-Root-Nutzer.

  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

Die OmniLab ATS CLI wurde mit den Python-Versionen 3.7 bis 3.11 getestet.

Bei Ubuntu 16.04 oder früher müssen Sie zuerst das Repository für Python 3 hinzufügen. Gehen Sie dazu so vor:

  • Führe folgenden Befehl aus:

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

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 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 herunterladen

Laden Sie das Befehlszeilenpaket hier 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. In der CLI wird eine Web-URL angezeigt, ü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.

Wenn eine neuere Version verfügbar ist, können Sie ein Update auf die aktuelle Version durchführen. Informationen zu den neuesten Releases finden Sie in den Versionshinweisen.

So aktualisieren Sie auf die aktuelle Version:

mtt start --force_update

So beenden Sie die App:

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 Daten wiederherzustellen:

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 zum ersten Mal installiert und ausgeführt haben, werden Sie vom Einrichtungsassistenten durch einige Schritte geführt, mit denen Sie das Tool an Ihre Umgebung anpassen können. Alle Änderungen, die Sie hier vornehmen, können später über die 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 Konfigurationen zu kopieren, die auf diesem Host geändert wurden. Klicken Sie dazu auf die Schaltfläche 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 verwendet, z. B. Google Cloud Storage oder Google Drive. 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 rechts oben 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: Das Dienstkonto wird geändert.

Konfigurationssätze importieren

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

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

Konfigurationssets importieren

Abbildung 4: Konfigurationssatz importieren

WLAN-Einstellungen einschließen

Für einige CTS-Tests muss Ihr Gerät eine Verbindung zu einem WLAN-Hotspot herstellen. 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 Sie Test-Android-Builds verwenden möchten, die mit benutzerdefinierten ADB-Schlüsseln vorinstalliert sind, legen Sie die benutzerdefinierten .adb_key-Dateien in das Verzeichnis ~/.android/.

    Die Dateien werden automatisch geladen und an ADB übergeben, um das USB-Debugging nach dem Flashen des Geräts automatisch zu aktivieren. Das gilt für Geräte, auf denen diese Builds ausgeführt werden.

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

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

    Gerät verbinden

    Abbildung 6 Gerät verbinden

Die verschiedenen Gerätestatus sind:

  • 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 den aktuellen Test also beenden, bevor ein neuer Test ausgeführt werden kann.

Test durchführen

Test auswählen

OmniLab ATS enthält eine Reihe von vorab gebündelten 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. Wählen Sie einen Test aus.

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

Testlauf konfigurieren

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

Dieser Schritt kann mit den Standardwerten abgeschlossen werden. Sie können jedoch alle Parameter wie Max Retry und Command nach Bedarf ändern.

Testlauf konfigurieren

Abbildung 8. Testlauf konfigurieren

Die Testlaufparameter sind:

  • Name: Name der Testsuite, die Sie ausführen möchten.
  • Anzahl der Ausführungen: Anzahl der Ausführungen dieses Testlaufs bei der Planung. 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 ausreicht.
  • Max. Retry (Maximale Anzahl von Wiederholungsversuchen): Die maximale Anzahl von Wiederholungsversuchen für einen Testlauf, wenn mindestens ein Test fehlschlägt. Für einen vollständigen CTS-Lauf werden in der Regel 4–6 Wiederholungsversuche festgelegt, um instabile Tests zu verarbeiten.
  • Zeitüberschreitung in der Warteschlange: Wenn ein Testlauf zu lange im Status In der Warteschlange verbleibt, wird er automatisch abgebrochen. Geben Sie hier an, wie lange gewartet werden soll, bevor die Kündigung erfolgt. Der Standardwert ist 24 Stunden.
  • Befehl: Der Befehl zum Ausführen der Testsuite. Hier können Sie zusätzliche Befehlszeilenargumente eingeben. So führen Sie beispielsweise ein bestimmtes Modul in CTS 8.1 aus:

    cts-suite -m ShortModuleName
    
  • Retry Command (Befehl zum Wiederholen) – Der Befehl zum Wiederholen einer Testsuite. Hier können Sie zusätzliche Befehlszeilenargumente hinzufügen. Wenn Sie beispielsweise nur ein bestimmtes Modul in CTS 8.1 noch einmal ausführen möchten, verwenden Sie:

    cts --retry 0 -m ShortModuleName
    

    Die Argumente für den Wiederholungsversuch können sich von denen des ursprünglichen Befehls unterscheiden. Sehen Sie daher auf der offiziellen Website der ausgewählten Testsuite nach, welche Parameter unterstützt werden.

  • Vorheriger Testlauf: Wenn Sie einen vorherigen Testlauf noch einmal ausführen möchten:

    • Lokal: Wenn der Lauf auf dem aktuellen Host gestartet wurde, geben Sie die Testlauf-ID ein, die in den Details des Testlaufs angezeigt wird.

      Lokaler vorheriger Testlauf

      Abbildung 9. Lokaler vorheriger Testlauf.

    • Remote: Wenn der Lauf auf einem anderen Host gestartet wurde, laden Sie die Datei mit den Testergebnissen hoch. Wählen Sie dazu Remote aus, klicken Sie auf Datei mit Testergebnissen hochladen und wählen Sie eine Datei aus Ihrem lokalen Speicher aus.

      Vorherigen Testlauf entfernen

      Abbildung 10. Vorherigen Testlauf entfernen.

Geräte auswählen

Klicken Sie die Kästchen an, um die Geräte auszuwählen, die für die Ausführung der Testsuite 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 anhand anderer Attribute als der Gerätenummer auswählen möchten, können Sie die Gerätespezifikationen manuell eingeben. Wenn Sie beispielsweise drei Geräte auswählen möchten, deren Produktname „bramble“ lautet, 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. Während des Testlaufs 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 die Häkchen für die hinzuzufügenden Aktionen und klicken Sie auf Aktion(en) hinzufügen. Geräteaktionen werden nacheinander ausgeführt. Sie können die Aktionen neu anordnen, indem Sie sie an die gewünschte Position ziehen.

Aktionen hinzufügen

Abbildung 13. Aktionen neu anordnen

Testressourcen festlegen

Testressourcen sind Dateien, die zum Ausführen eines Testlaufs erforderlich sind. Für das Ausführen von CTS ist beispielsweise eine android-cts*.zip-Datei erforderlich und für das Flashen eines Geräts müssen Sie das Build-Image angeben.

Die Download-URL für die ZIP-Datei der Testsuite 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 Link zum Herunterladen einer Datei eingeben, eine Datei aus einem authentifizierten Build-Channel 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 die Download-URL eingeben und auf die Schaltfläche Auswählen klicken, um die Auswahl zu bestätigen.

Test Resource Selector – Web-URL

Abbildung 15. Test-Ressourcenauswahl – Web-URL.

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

Test Resource Selector – Google Drive

Abbildung 16: Resource Selector testen – Google Drive

Neben der Auswahl von Dateien werden auch Platzhalterzeichen im Feld Dateiname unterstützt. Die Dokumentation finden Sie hier.

Test Resource Selector – Unterstützung von Platzhaltermustern

Abbildung 17. Test Resource Selector – 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.

Testen der Ressourcenauswahl – Lokaler Dateispeicher

Abbildung 18. Test der Ressourcenauswahl – Lokaler Dateispeicher

Konfigurationen für 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 erneute Ausführung hinzufügen

Abbildung 19. Konfigurationen für erneute Ausführung hinzufügen

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 wird gestartet.

Testplan erstellen

Mit Testplänen werden Testläufe nach einem regelmäßigen Zeitplan erstellt. 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: Testläufe werden nur erstellt, wenn ein Nutzer auf der Seite mit der Testplanliste auf Testplan ausführen klickt.
  • Regelmäßig: Im Testplan werden Testläufe automatisch nach dem ausgewählten regelmäßigen Zeitplan geplant. Sie können beispielsweise festlegen, dass ein Testlauf jeden Tag um 17:00 Uhr ausgeführt wird.
  • Benutzerdefiniert: Testläufe werden automatisch anhand des eingegebenen Cron-Ausdrucks geplant. Wenn Sie beispielsweise einen Testlauf für jeden Tag um 17:00 Uhr planen möchten, lautet der Cron-Ausdruck 0 17 * * *.

Testplan konfigurieren

Abbildung 22. Testplan konfigurieren

Test-Suites hinzufügen

Klicken Sie auf + Testlaufkonfiguration hinzufügen, um Test-Suites hinzuzufügen, die vom Testplan geplant werden sollen. Wählen Sie im Drop-down-Menü Name eine Testsuite 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 jedem 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 finden Sie 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 festlegen

Testläufe ansehen

Liste der Testläufe

Die Liste der geplanten Testläufe finden Sie auf der Seite „Testläufe“. Klicken Sie auf Ansehen, um weitere Details zu einem Testlauf zu sehen.

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 Protokolle und die Ergebnisse.

Details zum Testlauf

Abbildung 27. Details zum Testlauf.

Testlaufstatus

Der Fortschritt eines Testlaufs wird im Abschnitt „Status“ angezeigt. Falls es eine zugehörige Meldung gibt, z. B. zum Downloadfortschritt, zum Kündigungsgrund oder eine Fehlermeldung, wird sie hier ebenfalls angezeigt.

Status des Testlaufs

Abbildung 28. Status des Testlaufs.

Die Testlaufstatus sind:

  • Ausstehend: Die erforderlichen 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 wurde abgeschlossen und die Ergebnisse wurden gemeldet.
  • Canceled (Abgebrochen): Der Test wurde vom Nutzer abgebrochen oder es ist ein Zeitüberschreitungsfehler aufgetreten, als versucht wurde, verfügbare Geräte zu finden.
  • Fehler: Es ist ein Fehler aufgetreten, der verhindert hat, dass der Test ausgeführt wurde.

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 Queued (In der Warteschlange) verbleiben. Das Abbrechen eines Testlaufs im Status Wird ausgeführt kann einige Minuten dauern.

Testlauf abbrechen

Abbildung 29. Testlauf abbrechen

Ergebnisse des Testlaufs

Nach Abschluss eines Testlaufs werden die Ergebnisse erfasst und angezeigt. Wenn Sie weitere Details sehen möchten, klicken Sie für den jeweiligen Lauf auf den Pfeil. Klicken Sie auf Ausgabedateien ansehen, um die gesammelten Testartefakte wie test_result.xml und test_result_failures.html aufzurufen.

Ergebnisse des Testlaufs

Abbildung 30. Ergebnisse des Testlaufs

Live-Host- und Tradefed-Logs können Sie auf dem Tab „Logs“ aufrufen.

Logs für Testläufe

Abbildung 31: Tab „Logs“

Die Ergebnisse für einzelne Module finden Sie auf dem Tab „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 die Details des Testlaufs wie create_time aufrufen möchten, klicken Sie auf den Tab „Konfiguration“.

Tab „Testkonfiguration“

Abbildung 34. Tab „Konfiguration“

Erweiterte Funktionen

Konfigurationsdateien verwalten

OmniLab ATS verwendet Konfigurationsdateien, die in YAML geschrieben sind, um vordefinierte Optionen wie Tests, Build-Channels und Geräteaktionen zu laden. Hier sehen Sie 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 oben rechts auf Exportieren.

Verwaltung von Konfigurationsdateien

Abbildung 35. Verwaltung von Konfigurationsdateien

Nachdem Sie die Konfigurationsdatei heruntergeladen haben, geben Sie sie für andere Nutzer frei. 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 Geräteeinrichtung zu automatisieren. Aktionen sind Skripts, die auf jedem Gerät ausgeführt werden, auf dem der Test ausgeführt wird, und zwar vor jedem Testlauf, auch vor Wiederholungsversuchen. Eine Liste der verfügbaren Geräteaktionen finden Sie auf der Seite „Einstellungen“ auf dem Tab „Geräteaktionen“. Mehrere 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.

    Schaltfläche „New Device Action“ (Neue Geräteaktion)

    Abbildung 37: Schaltfläche für neue Geräteaktionen

  2. Geben Sie einen Namen und eine Beschreibung ein.

    Name der Geräteaktion

    Abbildung 38. Name der Geräteaktion.

  3. Klicken Sie auf Zielvorbereitung hinzufügen.

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

    Zielvorbereitung hinzufügen

    Abbildung 39. Zielvorbereiter hinzufügen

    Eine Liste der verfügbaren TargetPreparer finden Sie in der Referenz zu com.android.tradefed.targetprep.

    Liste der Zielvorbereiter

    Abbildung 40: Liste der Zielvorbereiter.

  5. Fügen Sie alle Optionen hinzu, die mit dem Zielvorbereitungs-Tool verwendet werden sollen. Die verfügbaren Optionen finden Sie im Quellcode für jeden Target-Preparer in AOSP unter 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 die Zielvorbereitung hinzufügen und geben Sie die erforderlichen Werte ein.

    Beispiel für 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. Wenn Sie eine Ressourcendefinition hinzufügen möchten, klicken Sie auf Testressource hinzufügen und füllen Sie die Pflichtfelder aus. 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 Entpacken aus. Geben Sie dann das relative Zielverzeichnis unter dem temporären Arbeitsverzeichnis und die Dateinamen an, die dekomprimiert werden sollen. 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 importieren

Abbildung 49. Hostkonfiguration importieren

Lokale Dateien und Verzeichnisse verwenden

Ab Version R11 sind Dateien im Verzeichnis $HOME/.ats_storage automatisch in OmniLab ATS verfügbar. Kopieren oder verschieben Sie eine Datei in dieses Verzeichnis. Sie können sie dann beim Planen eines Testlaufs auf dem Tab Lokale Datei auswählen.

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

Lokale Datei auswählen

Abbildung 50. Wählen Sie eine Datei aus dem Verzeichnis $HOME/.ats_storage aus.

Mit dem Flag --mount_local_path können Sie zusätzliche Verzeichnisse in den lokalen Dateispeicher einbinden.

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 gemountet sind.

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 des Modus für mehrere Hosts

Abbildung 52. Architektur des Modus für mehrere Hosts

  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 in Ihrem Netzwerk keine Kommunikation zwischen Hosts möglich ist, müssen Sie die unten stehende erweiterte Einrichtungsanleitung für ATS-Worker befolgen.

  1. Stellen Sie eine Verbindung zwischen den beiden Hosts über SSH-Tunnel her. Wählen Sie Ports für die primären und die Dateiserverports aus, z. B. 9000 und 9006.

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

    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
    

Dateimanager

Der Dateibereiniger ist ein Cron-Job, der stündlich ausgeführt wird, um Dateien basierend auf benutzerdefinierten Konfigurationen zu bereinigen. ATS hat zwei Standardkonfigurationen zum Archivieren von Testergebnissen und zum Löschen temporärer Dateien. In diesem Leitfaden wird erläutert, 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 zum Auswählen von Zielen. Die verfügbaren Vorgänge sind in der Tabelle aufgeführt:

VorgangstypParameter
ARCHIVEremove_file: Wenn true, entfernen Sie die Datei nach der Archivierung.
DELETE

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

KriteriumstypBeschreibungParameter
LAST_MODIFIED_TIMEDateien nach Datum und Uhrzeit der letzten Änderung filtern.ttl: Es werden verschiedene Arten von Zeitangaben unterstützt, z. B. 10m, 2h, 7 days, 4w. Informationen zu unterstützten Formaten finden Sie unter pytimeparse.
LAST_ACCESS_TIMEDateien nach Datum und Uhrzeit des letzten Zugriffs filternIdentisch mit LAST_MODIFIED_TIME.
NAME_MATCHDateien anhand ihres Namens mit regulären Ausdrücken filternpattern: Regulärer Ausdruck, z. B. [a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}\.zip, um mit Ergebnis-Zips übereinzustimmen.
SYSTEM_AVAILABLE_SPACEAktionen basierend auf dem verfügbaren Speicherplatz auf dem System auslösenthreshold: Löst eine Aktion aus, wenn der verfügbare Speicherplatz unter den Schwellenwert fällt, z. B. 200(B), 200KB, 200MB, 200GB, 2TB.

Neue Richtlinie für die Dateibereinigung

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

Konfigurationen

In einer Konfiguration werden eine oder mehrere Richtlinien mit bestimmten Verzeichnissen kombiniert. 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 aufgeführt sind.

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 Dateibereinigers bearbeiten

Abbildung 54. Bearbeiten Sie die Konfiguration des Dateibereinigungstools.

Zurücksetzen

Wenn Sie auf Einstellungen zurücksetzen klicken, wird die Konfiguration des Dateibereinigungstools auf den Standardzustand zurückgesetzt. Durch diese Aktion werden ALLE benutzerdefinierten Elemente entfernt.

Einstellungen für den Dateimanager zurücksetzen

Abbildung 55. Einstellungen für den Dateimanager zurücksetzen

Support

Fehlerberichte

Ihre Beiträge zu OmniLab ATS helfen uns, das Tool weiterzuentwickeln. Wir freuen uns auf Ihr Feedback. Weitere Informationen zum aktuellen Release finden Sie 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.