Entwickeln
Entwickeln
Deine Plattform auswählen

AutoDriver zur Aufnahme von Eingaben verwenden

AutoDriver ist eine VrApi-Ebene, die, wenn sie aktiviert ist, die Eingaben von Headset, Controller und Hand-Tracking des*der Nutzer*in sowie Tracking-Daten aufnimmt. Diese aufgezeichneten Eingaben können dann wiedergegeben werden, sodass Apps sie für automatisierte Tests wiederverwenden können, bei denen Eingaben von Nutzer*innen erforderlich sind.
Important
AutoDriverX unterstützt derzeit kein OpenXR.

Übersicht

Wenn ein Test erstellt wird, der eine Abfolge von Eingaben durch Nutzer*innen erfordert, kann AutoDriver für die folgenden beiden Zwecke verwendet werden:
  • Eingaben zunächst definieren und aufnehmen.
  • Diese Eingaben während des End-to-End-Tests (E2E) automatisch wiedergeben.
In diesem Thema wird erklärt, wie du eine AutoDriver-Aufnahme erstellst, die du in deinem E2E-Test verwenden kannst. AutoDriver ist in das Betriebssystem integriert, sodass für die Verwendung keine Installation erforderlich ist. Wenn die entsprechenden Systemeigenschaften festgelegt sind, beginnt AutoDriver automatisch mit der Aufnahme oder Wiedergabe, sobald die Zielanwendung gestartet wird. In den folgenden Abschnitten wird beschrieben, wie eine AutoDriver-Aufnahme mithilfe von Batch-Dateien (empfohlen) oder manuell erstellt und wiedergegeben wird.

Aufnahme mithilfe von Batch-Dateien erstellen

Am einfachsten lassen sich AutoDriver-Aufnahmen mithilfe der Batch-Dateien auf unserer Download-Seite erstellen. Die Batch-Dateien enthalten eine ausführlichere Parameterdokumentation, aber die grundlegende Verwendung ist in den folgenden Abschnitten beschrieben.

Umgebungsvariablen festlegen

Vor dem Ausführen des Skripts musst du sicherstellen, dass Meta Quest über adb mit dem Computer verbunden ist, und die folgenden Variablen festlegen. Insbesondere müssen TEST_CLASS und TEST_ACTIVITY ordnungsgemäß festgelegt werden, da das Skript sonst deine App nicht für die Aufnahme starten kann.
# Choose any name that you want.
$env:TEST_NAME='MyFirstRecording'

# The class and activity names must match those in the app you want to record in.
$env:TEST_CLASS='com.oculus.PackageName’
$env:TEST_ACTIVITY='com.oculus.MainActivity’
# This is how long your recording session will last.
$env:TEST_SECONDS='45'

Eingaben aufnehmen

Führe das Skript RecordAutoDriverInputs.bat aus. Das Skript startet die Ziel-App im Aufnahmemodus. Setze das Headset auf und nimm die Controller in die Hand, wenn du dazu aufgefordert wirst, und beginne mit der Eingabe der aufzuzeichnenden Eingaben. Nach Ablauf von $TEST_SECONDS wird die Aufnahme gestoppt und die App geschlossen. Das Skript teilt dir dann mit, wo du die Ausgaben im aktuellen Ausführungsverzeichnis findest:
===== Outputs: MyFirstRecording =====
Your user inputs were saved here: MyFirstRecording.autodriver
Complete logcat saved here: MyFirstRecording.logcat.txt
Die *.autodriver-Datei ist die Datei, die du zur Wiedergabe dieser Eingaben während eines Tests verwendest. Die Logcat-Aufnahmen können auch nützlich sein, wenn du einen Regressionstest schreibst, der die Logcat-Ausgabe auf Korrektheit überprüft.

AutoDriver-Aufnahme wiedergeben

Bevor du aus deiner neu erstellten AutoDriver-Aufnahme einen E2E-Test erstellst, solltest du sie zunächst durch Wiedergabe auf ihre Richtigkeit überprüfen. Besonders praktisch ist es, das Wiedergabeskript direkt nach dem Aufnahmeskript auszuführen, da es dieselben Umgebungsvariablen verwendet, die du während der Aufnahmephase festgelegt hast. Führe das Skript PlaybackAutoDriverInputs.bat aus und setze das Headset auf, um zu überprüfen, ob die Aufnahme ordnungsgemäß erfasst wurde.

E2E-Test schreiben

Wenn die neue *.autodriver-Datei deine Plausibilitätsprüfung besteht, speichere sie. Du benötigst sie, wenn du deinen E2E-Test erstellst. Verwende die Wiedergabe-AutoDriver-Aufnahmebefehle während der Einrichtung deines Tests, um sicherzustellen, dass deine AutoDriver-Aufnahme startet, wenn deine Test-App gestartet wird.

Aufnahme manuell erstellen

Wir empfehlen, dass du die oben beschriebenen Batch-Dateien verwendest, um deine AutoDriver-Aufnahmen zu erstellen. Der Vollständigkeit halber werden in diesem Abschnitt jedoch die manuellen Schritte beschrieben, die du zum Erfassen und Wiedergeben einer AutoDriver-Aufnahme verwenden kannst. Beachte, dass die Befehle zum Erfassen der Logcat-Ausgabe nicht enthalten sind, was die oben genannten Skripte automatisch für dich erledigen.
Umgebungsvariablen festlegen
# Choose any name that you want.
$env:TEST_NAME='MyFirstRecording'

# The class and activity names must match those in the app you want to record in.
$env:TEST_CLASS='com.oculus.PackageName’
$env:TEST_ACTIVITY='com.oculus.MainActivity’
Eingaben aufnehmen
# Set AutoDriver properties.
adb.exe shell setprop debug.oculus.vrapilayers AutoDriver
adb.exe shell setprop debug.oculus.autoDriverApp $env:TEST_CLASS
adb.exe shell setprop debug.oculus.autoDriverMode Record

# Launch the app.
adb.exe shell am start -S $env:TEST_CLASS/$env:TEST_ACTIVITY

# End the app when you are finished.
adb.exe shell am broadcast -a com.oculus.vrapilayers.AutoDriver.SHUTDOWN
adb.exe shell am force-stop $env:TEST_CLASS

# Fetch your new autodriver file.
adb.exe pull /sdcard/Android/data/$env:TEST_CLASS/AutoDriver/default.autodriver "./$env:TEST_NAME.autodriver"
AutoDriver-Aufnahme wiedergeben Wenn eine AutoDriver-Aufnahme in einem E2E-Test verwendet wird, verwende diese Befehle während der Testeinrichtung:
# Copy the autodriver recording to the device.
adb.exe push "$env:TEST_NAME.autodriver" /sdcard/Android/data/$env:TEST_CLASS/AutoDriver/default.autodriver

# Set AutoDriver properties.
adb.exe shell setprop debug.oculus.vrapilayers AutoDriver
adb.exe shell setprop debug.oculus.autoDriverApp $env:TEST_CLASS
adb.exe shell setprop debug.oculus.autoDriverMode Playback
adb.exe shell setprop debug.oculus.autoDriverPlaybackHeadMode HeadLocked

# Launch the app.
adb.exe shell am start -S $env:TEST_CLASS/$env:TEST_ACTIVITY

# End the app when you are finished.
adb.exe shell am force-stop $env:TEST_CLASS

Siehe auch