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 README-Datei für die Cloud-Orchestrierung für Android , 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:Der Dienstendpunkt sollte vom OmniLab ATS-Worker-Host aus erreichbar sein. 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 die Cloud-Orchestrierung 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 die Cloud-Orchestrierung 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 die Cloud-Orchestrierung erforderlich ist. Weitere Informationen finden Sie im Upgrade-Leitfaden für OmniLab ATS 2.0.--force_update: Ruft den neuesten Container-Build mit ATS 2.0- und Cloud Orchestration-Funktionen ab.
Test mit cloud-orchestrierten Geräten ausführen
In diesem Abschnitt werden die Schritte zum Ausführen eines Tests auf cloud-orchestrierten virtuellen Geräten beschrieben.
Ausgewählte Geräte
In der Geräteliste werden cloud-orchestrierte virtuelle Geräte in OmniLab ATS als Platzhalter anstelle ihrer tatsächlichen Seriennummern angezeigt. 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 : Cloud-orchestrierte 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 Gerätebild-Zip-Datei 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