Die Cloud Orchestration App bietet eine leistungsstarke, skalierbare Möglichkeit zum Verwalten von Cuttlefish-Instanzen, insbesondere für ARM-basierte virtuelle Geräte (CHD). OmniLab ATS unterstützt Cloud Orchestration, sodass Sie Tests auf virtuellen Geräten ausführen können. Bevor Sie virtuelle Geräte verwenden, folgen Sie der Anleitung unter OmniLab Android Test Station, um OmniLab ATS zu installieren.
Übersicht
Mit Cloud Orchestration kann OmniLab ATS die Verwaltung von Cuttlefish-Instanzen an einen dedizierten Cloud Orchestrator-Dienst delegieren. Dieser Ansatz bietet mehrere Vorteile gegenüber den vorhandenen lokalen und Remote-Modi und sorgt gleichzeitig für eine vertraute Nutzererfahrung:
- Paralleles Starten von Instanzen:Ermöglicht das gleichzeitige Starten mehrerer Cuttlefish-Instanzen, wodurch die Vorlaufzeit vor dem Start von Tests erheblich verkürzt wird.
- Skalierbarkeit:Geeignet für umfangreiche Testumgebungen.
- Ressourcenisolation:Entkoppelt die Testausführungsumgebung (ATS-Worker) von der Geräteemulationsumgebung.
Vorbereitung
- Ein Hostcomputer, auf dem Docker ausgeführt werden kann
- Zugriff auf die Docker-Images für die Cuttlefish-Orchestrierung
Cloud Orchestrator-Dienst einrichten
Der Cloud Orchestrator-Dienst verwaltet den Lebenszyklus von Cuttlefish-Instanzen. Sie können den Dienst in verschiedenen Umgebungen bereitstellen. Er unterstützt sowohl x86- als auch ARM-Architekturen:
- Gleicher Host wie ATS-Worker:Wird in einem Docker-Container auf demselben Computer ausgeführt
- Separater Computer:Wird auf einem lokalen Server ausgeführt, auf dem Docker ausgeführt werden kann
- Cloud-Instanz:Wird auf einer virtuellen Maschine in einer Cloud-Umgebung ausgeführt, z. B. Google Compute Engine
Dienst installieren und einrichten
Folgen Sie der Anleitung in der Infodatei zu Cloud Android Orchestration , um den Dienst zu starten.
Authentifizierung und Berechtigungen
Wenn der Cloud Orchestrator-Dienst auf einem Remotecomputer ausgeführt wird, muss der ATS-Worker-Host die erforderlichen Berechtigungen haben, um über HTTP-Anfragen darauf zuzugreifen. Wenn keine HTTP-Verbindung zulässig ist, müssen Sie möglicherweise die SSH-Portweiterleitung einrichten. Weitere Informationen finden Sie unter Cloud Orchestrator testen.
Erwarteter Status
Nachdem der Cloud Orchestrator-Dienst erfolgreich gestartet wurde, sollte er über HTTP erreichbar sein. Sie können den Status prüfen, indem Sie die API abfragen:
- Dienst anpingen:Sie sollten den Dienstendpunkt vom OmniLab ATS-Worker-Host aus erreichen können. Wenn Sie beispielsweise
curl -I http://localhost:8080/v1/zones/local/hostsausführen, sollte eine erfolgreiche HTTP Antwort zurückgegeben werden (entwederHTTP/1.1 200 OKoder eine302 Found-Weiterleitung zu/username). Dadurch wird bestätigt, dass der Dienst aktiv und erreichbar ist.
OmniLab ATS für Cloud Orchestration konfigurieren
Bevor Sie OmniLab ATS starten, müssen alle Cuttlefish-Instanzen auf dem OmniLab ATS-Worker-Host beendet werden. OmniLab ATS startet und beendet die virtuellen Geräte automatisch während des Testzyklus. Vorhandene Cuttlefish-Instanzen stehen im Konflikt mit Instanzen, die von OmniLab ATS verwaltet werden. Weitere Informationen zum Beenden von Cuttlefish-Instanzen finden Sie unter Cuttlefish beenden.
Wenn Sie Cloud Orchestration in OmniLab ATS aktivieren möchten, übergeben Sie beim Starten von OmniLab ATS bestimmte Flags:
mtt start --max_orchestration_virtual_devices N \
--orchestration_service_url=http://HOST:PORT \
--use_host_network \
--force_ats_version 2 \
--force_update--max_orchestration_virtual_devices: Legt die maximale Anzahl virtueller Geräte fest, die von Cloud Orchestrator verwaltet werden und die OmniLab ATS gleichzeitig zuweisen kann. Der Standardwert ist 0.--orchestration_service_url: Gibt die URL an, an der der Cloud Orchestration-Dienst auf Anfragen wartet, z. B.http://localhost:8080.--use_host_network: Verwendet den Netzwerk-Namespace des Hosts für den Container. Dies ist erforderlich, um auf den Cloud Orchestration-Dienst zuzugreifen.--force_ats_version 2: Erzwingt die Verwendung von OmniLab ATS 2.0, das für Cloud Orchestration erforderlich ist. Weitere Informationen finden Sie im Upgradeleitfaden für OmniLab ATS 2.0.--force_update: Ruft den neuesten Container-Build mit ATS 2.0- und Cloud Orchestration-Funktionen ab.
Hardwarespezifikationen für virtuelle Geräte konfigurieren (optional)
Standardmäßig wird jede cloudorchestrierte Instanz eines virtuellen Geräts mit vier CPUs und 8192 MB (8 GB) RAM bereitgestellt. Wenn Sie OmniLab ATS mit Cloud Orchestration starten, können Sie die Anzahl der CPU-Kerne und die Arbeitsspeicherzuweisung für Instanzen virtueller Geräte anpassen, indem Sie --android_jit_emulator_cpus und --android_jit_emulator_memory_mb mit --extra_docker_args im Befehl mtt start an den Laborserver übergeben:
mtt start --max_orchestration_virtual_devices N \
--orchestration_service_url=http://HOST:PORT \
--use_host_network \
--force_ats_version 2 \
--force_update \
--extra_docker_args '-e LAB_SERVER_OPTS="--android_jit_emulator_cpus=CPUS --android_jit_emulator_memory_mb=MEMORY_MB"'--android_jit_emulator_cpus: Legt die Anzahl der CPU-Kerne für jede Instanz eines virtuellen Geräts fest. Wenn nicht festgelegt oder ≤ 0, wird standardmäßig4verwendet.--android_jit_emulator_memory_mb: Legt den Speicher in Megabyte (MB) für jede Instanz eines virtuellen Geräts fest. Wenn nicht festgelegt oder ≤ 0, wird standardmäßig8192verwendet.
Test mit cloudorchestrierten Geräten ausführen
In diesem Abschnitt werden die Schritte zum Ausführen eines Tests auf cloudorchestrierten virtuellen Geräten beschrieben.
Ausgewählte Geräte
In der Geräteliste zeigt OmniLab ATS cloudorchestrierte virtuelle Geräte als Platzhalter an, nicht als tatsächliche Seriennummern. Die Platzhalter werden angezeigt
im Format von HOSTNAME:PORT (z. B.
thehostname:6520). Die Status sind entweder Verfügbar oder Zugewiesen. Ein Platzhalter mit dem Status Verfügbar gibt an, dass das virtuelle Gerät nicht ausgeführt wird und für den Test zugewiesen werden kann.
Abbildung 1 : Cloudorchestrierte virtuelle Geräte auswählen.
Geräteaktionen hinzufügen
Wenn ein Test auf diesen Geräten geplant ist, fügt ATS automatisch die erforderlichen Geräteaktionen hinzu, um die Cuttlefish-Instanzen während des Testzyklus bereitzustellen und zu verwalten.
Abbildung 2 : Automatische Geräteaktionen.
Testressourcen festlegen
Wenn Sie einen Test planen, müssen Sie die erforderlichen Testressourcen angeben. Achten Sie im Abschnitt Testressourcen festlegen darauf, dass Sie die hochgeladenen Dateien den richtigen Ressourcennamen zuordnen:
- Ordnen Sie das Host-Tool-Paket, z. B.
cvd-host_package.tar.gz, dem Namencvd_host_packagezu. - Ordnen Sie die ZIP-Datei des Geräte-Images dem Namen
cvd_device_imagezu.
Abbildung 3 : Testressourcen zuordnen.
Testläufe und Logs ansehen
Nach Abschluss des Tests können Sie die Logs im Abschnitt „Ausgabedateien“ ansehen. Zu den spezifischen Logs, die für von Cloud Orchestrator verwaltete Instanzen erfasst werden, gehören:
launcher.log: Logs vom Cuttlefish-Launcherkernel.log: Standard-Android-Kernel-Log