OmniLab-Android-Teststation

OmniLab ATS ist ein Testtool, mit dem Android-Entwickler und ‑Testingenieure eine Benutzeroberfläche zum Ausführen standardmäßiger Android-Test-Suites wie der Android Compatibility Test Suite (CTS) verwenden können. Dieses Tool dient als Weboberfläche für verschiedene Test-Frameworks wie Trade Federation (TF) und Google Mobly. So können Sie CTS- und Mehrgerätetests mit minimaler Einrichtung auf einer Reihe von Testgeräten ausführen und einen Zeitplan für die kontinuierliche Durchführung von Tests festlegen.

OmniLab ATS einrichten

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

OmniLab ATS verwendet Quellcode aus folgenden Quellen:

OmniLab ATS installieren

Beachten Sie alle Hardware- und Softwareanforderungen für die von Ihnen ausgeführten Test-Suiten.

Die Anforderungen für CTS finden Sie unter source.android.com.

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

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

Über das Installationsprogramm installieren

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-Befehlszeile zu prüfen.

Manuell installieren

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

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

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

Python 3 installieren

Die OmniLab ATS-Befehlszeile wurde mit den Python-Versionen 3.7 bis 3.11 geprüft.

Wenn Sie Ubuntu 16.04 oder eine niedrigere Version verwenden, fügen Sie zuerst das Repository für Python 3 hinzu. 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 installieren möchten (z. B. 3.10), führen Sie stattdessen die folgenden Befehle aus:

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

OmniLab ATS-Befehlszeile abrufen

Hier können Sie das Befehlszeilenpaket herunterladen.

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 lautet 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. Aktuelle Releases finden Sie in den Versionshinweisen.

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

mtt start --force_update

So beenden Sie die App:

mtt stop

So rufen Sie eine Liste anderer Befehle auf:

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, um die aktuelle Datenbank in einer TAR-Datei mit dem Namen mtt-backup.tar in Ihrem Basisverzeichnis zu sichern:

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 zum Wiederherstellen den folgenden Befehl aus, bevor Sie die App starten:

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, führt Sie der Einrichtungsassistent durch einige Schritte, mit denen Sie das Tool für Ihre Umgebung anpassen können. Alle hier vorgenommenen Änderungen können später auf der Seite „Einstellungen“ neu konfiguriert werden.

Konfigurationssicherung wiederherstellen

Wenn Sie eine Konfigurationsdatei gesichert haben, die von einem anderen OmniLab ATS-Host stammt, können Sie die Datei hochladen, um alle Konfigurationen zu kopieren, die von 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 beim Zugriff auf Ihre Ressourcen verwendet (z. B. Google Cloud Storage, 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 einrichten

Wenn die Authentifizierung des Dienstkontos erfolgreich war, 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 Dienstkonto ändern

Konfigurationssätze importieren

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

Wählen Sie alle 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 Ihr Gerät mit einem WLAN-Hotspot verbunden sein. Geben Sie die WLAN-SSID und optional das 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

Das USB-Debugging muss aktiviert sein, damit ein Gerät für Tests verwendet werden kann. So aktivieren Sie die Fehlerbehebung:

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

  2. Wenn Sie benutzerdefinierte ADB-Schlüssel verwenden möchten, legen Sie die benutzerdefinierten .adb_key-Dateien im Verzeichnis ~/.android/ ab.

    Die Dateien werden automatisch geladen und an ADB übergeben, um das USB-Debugging automatisch zu aktivieren, nachdem das Gerät mit diesen Builds geflasht wurde.

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

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

    Gerät verbinden

    Abbildung 6: Ein Gerät wird verbunden.

Die verschiedenen Gerätestatus sind:

  • Verfügbar: Das Gerät ist verbunden und bereit, einen Test auszuführen.
  • Zugewiesen: Das Gerät ist verbunden und führt einen Test durch. 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 gestartet werden kann.

Test durchführen

Test auswählen

OmniLab ATS enthält eine Reihe vorkonfigurierter 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 spezifischen Testlauf verwendet werden sollen. Die meisten Parameter sind bereits mit Werten aus der ausgewählten Testkonfiguration ausgefüllt.

Sie können diesen Schritt mit den Standardwerten ausführen. Sie können aber auch alle Parameter wie Max Retry und Command an Ihre Anforderungen anpassen.

Testlauf konfigurieren

Abbildung 8: Testlauf konfigurieren

Die Parameter für die Testausführung sind:

  • Name: Name der Testsuite, die Sie ausführen möchten.
  • Ausführungsanzahl: Gibt an, wie oft dieser Testlauf ausgeführt werden soll. Testläufe werden mit Trade Federation geplant. Bei ausreichender Kapazität können bis zu 20 Testläufe parallel ausgeführt werden.
  • Max. Wiederholung: Maximale Anzahl von Wiederholungen eines Testlaufs, wenn mindestens ein Test fehlschlägt. Für einen vollständigen CTS-Lauf wird in der Regel ein Wert von 4–6 Wiederholungen festgelegt, um fehlerhafte Tests zu verarbeiten.
  • Warteschlangen-Zeitüberschreitung: 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 wirksam wird. 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
    
  • Wiederholbefehl: 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 wiederholen möchten, verwenden Sie:

    cts --retry 0 -m ShortModuleName
    

    Die Argumente für den Wiederholungsversuch können sich von denen unterscheiden, die mit dem ursprünglichen Befehl verfügbar sind. Sehen Sie sich daher die unterstützten Parameter auf der offiziellen Website der ausgewählten Testsuite an.

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

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

      Vorheriger lokaler Testlauf

      Abbildung 9. Vorheriger lokaler Testlauf.

    • Remote: Wenn die Ausführung auf einem anderen Host gestartet wurde, laden Sie die Datei mit den Testergebnissen hoch, indem Sie Remote auswählen, auf Upload Test Results File (Datei mit Testergebnissen hochladen) klicken und eine Datei aus Ihrem lokalen Speicher auswählen.

      Vorheriger Testlauf aus der Ferne

      Abbildung 10. Vorherigen Test aus der Ferne ausführen

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 nach anderen Attributen als der Geräteserie auswählen möchten, können Sie „Gerätedaten“ 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
  • Geräte-Seriennummer
  • device_type
  • Hostname
  • Produkt
  • product_variant (Produktvariante)
  • sim_state

Alle ausgewählten Geräte müssen den Status Verfügbar haben, damit der Test ausgeführt werden kann. Sie wechseln alle in den Status Zugewiesen, wenn der Test ausgeführt wird. Ein Testlauf befindet sich im Status In der Warteschlange, während auf verfügbare Geräte gewartet wird.

Geräteaktionen hinzufügen

Geräteaktionen sind Scripts, 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 findest du 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 der Reihe nach ausgeführt. Sie können die Aktionen per Drag-and-drop neu anordnen.

Aktionen hinzufügen

Abbildung 13. Aktionen werden neu geordnet.

Testressourcen festlegen

Testressourcen sind Dateien, die für die Ausführung eines Tests erforderlich sind. Für die Ausführung von CTS ist beispielsweise eine android-cts*.zip-Datei erforderlich. Zum Flashen eines Geräts müssen Sie das Build-Image bereitstellen.

Die Download-URL für die ZIP-Datei der Testsuite sollte standardmäßig die Google Drive-Links enthalten, die Partner erhalten haben. Sie können eine andere Datei auswählen, indem Sie auf Durchsuchen klicken. Im Pop-up-Fenster können Sie einen Link zum Dateidownload eingeben, eine Datei aus einem authentifizierten Build-Kanal verwenden oder eine Datei aus dem lokalen Speicher hochladen.

Testressourcen

Abbildung 14. Ressourcen testen

Unten sehen Sie das Pop-up-Fenster, in dem Sie eine Testressource über eine Web-URL auswählen können. Sie können die URL des Downloadlinks eingeben und auf die Schaltfläche Auswählen klicken, um die Auswahl zu bestätigen.

Ressourcenauswahl testen – Web-URL

Abbildung 15. Ressourcenauswahl testen – Web-URL.

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

Test Resource Selector – Google Drive

Abbildung 16 Test Resource Selector – Google Drive

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

Test Resource Selector – Unterstützung von Platzhaltermustern

Abbildung 17. Ressourcenauswahl testen – 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.

Test Resource Selector – Local File Store

Abbildung 18. Test Resource Selector – Local file store

Konfigurationen für Wiederholungen hinzufügen

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

Konfigurationen zur erneuten Ausführung hinzufügen

Abbildung 19. Konfigurationen zur erneuten 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, beginnt der Testlauf 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

Mit Testplänen können Sie Testläufe nach einem regelmäßigen Zeitplan erstellen. Beispiel: CTS 9.0 wird täglich um 17:00 Uhr ausgeführt. Klicken Sie auf Neuen Testplan erstellen, um einen neuen Testplan zu erstellen.

Testplan erstellen

Abbildung 21. Erstellen eines Testplans.

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: Im Testplan werden nur Testläufe erstellt, wenn ein Nutzer auf der Seite mit der Testplanliste auf Testplan ausführen klickt.
  • Regelmäßig: Mit dem Testplan werden Testläufe automatisch gemäß dem ausgewählten regelmäßigen Zeitplan geplant. Beispiel: Sie planen einen Testlauf täglich um 17:00 Uhr.
  • Benutzerdefiniert: Der Testplan plant Testläufe automatisch basierend auf dem eingegebenen Cron-Ausdruck. Wenn Sie beispielsweise einen Testlauf täglich 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 + Konfiguration für Testausführung 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 Weiterer 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 werden hinzugefügt.

Testressourcen festlegen

Das Hinzufügen von Testressourcen zu Testplänen entspricht dem Hinzufügen zu einzelnen Testläufen. Weitere Informationen finden Sie unter Testressourcen festlegen.

Testressourcen festlegen

Abbildung 25. Testressourcen festlegen

Testausführungen ansehen

Liste der Testläufe

Auf der Seite „Testläufe“ finden Sie eine Liste der geplanten Testläufe. Klicken Sie auf Anzeigen, 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 in einer beliebigen Spalte genau den Text (kein Teilstringabgleich) enthalten, mit Ausnahme von Status und Created.

Bei einem leeren Filter werden alle Zeilen zurückgegeben. Derzeit ist es nicht möglich, nach Zeilen mit leeren Werten zu filtern.

Liste der Testläufe

Abbildung 26. Liste der Testläufe.

Testlaufdetails

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

Testlaufdetails

Abbildung 27. Details zur Testausführung.

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 zu einer Fehlermeldung, wird diese hier ebenfalls angezeigt.

Status des Testlaufs

Abbildung 28. Status der Testausführung.

Die Testlaufzustände 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 erfasst.
  • Abgebrochen: Der Test wurde vom Nutzer abgebrochen oder es trat eine Zeitüberschreitung auf, während nach verfügbaren Geräten gesucht wurde.
  • Fehler: Es ist ein Fehler aufgetreten, der das Ausführen des Tests verhindert hat.

Testlauf abbrechen

Wenn der Testlauf noch nicht abgeschlossen ist, können Sie ihn abbrechen. Klicken Sie dazu auf Abbrechen und dann im Bestätigungsdialogfeld auf Ja. Testläufe werden außerdem automatisch abgebrochen, wenn sie länger als das Feld queue_timeout_seconds im Status Queued bleiben. Wenn Sie einen Test abbrechen, während er sich im Status Laufend befindet, kann es einige Minuten dauern, bis die Änderung wirksam wird.

Testlauf abbrechen

Abbildung 29. Testlauf abbrechen

Testlaufergebnisse

Nach Abschluss eines Testlaufs werden die Ergebnisse erfasst und angezeigt. Wenn Sie zusätzliche Details sehen möchten, klicken Sie auf den Pfeil neben der jeweiligen Ausführung. Klicken Sie auf Ausgabedateien ansehen, um die erfassten Testartefakte wie test_result.xml und test_result_failures.html anzusehen.

Testlaufergebnisse

Abbildung 30. Ergebnisse des Testlaufs.

Auf dem Tab „Protokolle“ findest du Live-Host- und Tradefed-Protokolle.

Protokolle 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. Klicken Sie dazu auf dem Tab „Test Resources“ (Testressourcen) auf Open (Öffnen).

Tab „Testressourcen“

Abbildung 33. Tab „Test Resources“ (Ressourcen testen).

Die Details des Testlaufs, wie z. B. create_time, finden Sie auf dem Tab „Konfiguration“.

Tab „Testkonfiguration“

Abbildung 34 Tab „Konfiguration“.

Erweiterte Funktionen

Konfigurationsdateien verwalten

OmniLab ATS verwendet Konfigurationsdateien im YAML-Format, um vordefinierte Optionen wie Tests, Build-Kanäle und Geräteaktionen zu laden. Hier ist eine Beispielkonfigurationsdatei:

// 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 die Konfiguration mit anderen Nutzern teilen, 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 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 Geräteeinrichtung zu automatisieren. Aktionen sind Scripts, die vor jedem Testlauf auf jedem Gerät ausgeführt werden, auf dem der Test ausgeführt wird, auch vor Wiederholungen. 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. Neustarts und Blinken.

Tab „Geräteaktionen“

Abbildung 36 Tab „Geräteaktionen“.

Neue Geräteaktion hinzufügen

  1. Klicken Sie auf Neue Geräteaktion.

    Aktionsschaltfläche „Neues Gerät“

    Abbildung 37. Schaltfläche für die Aktion „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 Zielbearbeiter hinzufügen.

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

    Target Preparer hinzufügen

    Abbildung 39. Zielvorbereitung hinzufügen

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

    Liste der Target Preparer

    Abbildung 40: Liste der Target Preparer.

  5. Fügen Sie Optionen hinzu, die mit dem Zielvorbereitungstool verwendet werden sollen. Die verfügbaren Optionen finden Sie unter targetprep für den Quellcode der einzelnen Zielvorbereitungsprogramme in AOSP:

    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 Zielbearbeiter 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. 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 Zielbearbeiter 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 Dateienamen an. Wenn keine Dateinamen angegeben werden, werden alle Dateien aus der Testressource dekomprimiert.

    Ressourcen zu Aktionstests

    Abbildung 43. Ressourcen für Aktionstests

  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. Sie bearbeiten einen Test.

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 dessen Konfigurationen 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 oben rechts 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 in OmniLab ATS automatisch 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 Wählen Sie eine Datei aus dem Verzeichnis $HOME/.ats_storage aus.

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.

Mehrfachhost-Modus aktivieren

Im Multihost-Modus können Nutzer mit einem einzigen ATS-Controller-Host die Geräte und Tests auf mehreren ATS-Worker-Hosts verwalten.

Architektur im Modus mit mehreren Hosts

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 auf den Controller unter http://${CONTROLLER_HOSTNAME}:8000 zugegriffen werden kann.

  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, folgen Sie der Anleitung unten für die erweiterte Einrichtung des ATS-Workers.

  1. Verbinden Sie die beiden Hosts über SSH-Tunnel. Wählen Sie Ports für den primären und den Dateiserver 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
    

Datei-Cleaner

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 Testlaufergebnissen 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 auf Dateien oder Verzeichnissen 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, entfernen Sie die Datei nach dem Archivieren.
DELETE

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

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

Neue Richtlinie für die Dateibereinigung

Abbildung 53 Fügen Sie eine neue Richtlinie zur 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 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 Dateibereinigungstools bearbeiten

Abbildung 54: Bearbeiten Sie die Konfiguration des Dateibereinigers.

Zurücksetzen

Wenn Sie auf Einstellungen zurücksetzen klicken, wird die Konfiguration der Dateibereinigung auf den Standardzustand zurückgesetzt. Durch diese Aktion 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, die Entwicklung des Tools zu verbessern. Weitere Informationen zur neuesten Version finden Sie in den OmniLab ATS-Versionshinweisen. Wenn Sie Fehler melden oder Vorschläge machen möchten, erstellen Sie einen Fehlerbericht. Partner sollten Fehler oder Vorschläge über ihre Partnerkanäle melden.