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:
- Quellcode von OmniLab ATS
- Quellcode für TradeFed Cluster
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:
- Führen Sie das Installationsprogramm aus.
- Sie manuell installieren, was die Installation mehrerer Programme und Ressourcen erfordert.
Ü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:
Führen Sie das Installationsprogramm aus:
curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
Führen Sie
mtt version
aus, um die installierte Version der OmniLab ATS-Befehlszeile zu prüfen.
Manuell installieren
Docker installieren
Folgen Sie der Anleitung zum Installieren der Docker Community Edition (CE) auf Ihrem Linux-Computer.
Folgen Sie der Anleitung nach der Installation, um Docker als Nicht-Root-Nutzer zu verwalten.
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.
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.
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.
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.
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.
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:
Folgen Sie der Anleitung unter Entwickleroptionen und Fehlerbehebung aktivieren.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 * * *
.
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.
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.
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.
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.
Abbildung 26. Liste der Testläufe.
Testlaufdetails
Hier können Sie die Details eines Testlaufs ansehen, z. B. den Status, Logs und Ergebnisse.
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.
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.
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.
Abbildung 30. Ergebnisse des Testlaufs.
Auf dem Tab „Protokolle“ findest du Live-Host- und Tradefed-Protokolle.
Abbildung 31. Tab „Logs“
Die Ergebnisse für einzelne Module finden Sie auf dem 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).
Abbildung 33. Tab „Test Resources“ (Ressourcen testen).
Die Details des Testlaufs, wie z. B. create_time, finden Sie auf dem Tab „Konfiguration“.
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.
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.
Abbildung 36 Tab „Geräteaktionen“.
Neue Geräteaktion hinzufügen
Klicken Sie auf Neue Geräteaktion.
Abbildung 37. Schaltfläche für die Aktion „Neues Gerät“
Geben Sie einen Namen und eine Beschreibung ein.
Abbildung 38: Name der Geräteaktion.
Klicken Sie auf Zielbearbeiter hinzufügen.
Geben Sie den vollständigen Klassennamen des Trade Federation-Zielvorbereiters ein, z. B.
com.android.tradefed.targetprep.RunHostCommandTargetPreparer
.Abbildung 39. Zielvorbereitung hinzufügen
Eine Liste der verfügbaren Zielvorbereitungstools finden Sie in der Referenz com.android.tradefed.targetprep.
Abbildung 40: Liste der Target Preparer.
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:
Abbildung 41 Beispiel für eine Aktionsoption
Wenn Sie eine Option hinzufügen möchten, klicken Sie auf Option für Zielbearbeiter hinzufügen und geben Sie die erforderlichen Werte ein.
Abbildung 42. Beispiel für einen Aktionsbefehl
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.
Abbildung 43. Ressourcen für Aktionstests
Klicken Sie auf Aktualisieren.
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.
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.
Abbildung 46: Test erstellen
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.
Abbildung 48 Hostkonfiguration exportieren
Wenn Sie eine Hostkonfigurationsdatei importieren möchten, rufen Sie die Seite „Einstellungen“ auf und klicken Sie rechts oben auf 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
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
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.
Abbildung 52. Architektur im Multi-Host-Modus
Verwenden Sie den folgenden Befehl, um den ATS-Controller zu starten:
mtt start --operation_mode=ON_PREMISE
Prüfen Sie, ob auf den Controller unter
http://${CONTROLLER_HOSTNAME}:8000
zugegriffen werden kann.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.
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
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:
Vorgangstyp | Parameter |
---|---|
ARCHIVE | remove_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:
Kriteriumstyp | Beschreibung | Parameter |
---|---|---|
LAST_MODIFIED_TIME | Dateien 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_TIME | Dateien nach Datum und Uhrzeit des letzten Zugriffs filtern | Entspricht LAST_MODIFIED_TIME . |
NAME_MATCH | Filtern 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_SPACE | Aktionen 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 . |
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.
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.
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.