In dieser Anleitung wird beschrieben, wie Sie einen Android-Instrumentierungstest mit der gcloud beta device-run CLI ausführen und die Ergebnisse in der Google Cloud Console aufrufen. Dabei wird davon ausgegangen, dass Sie ein Google Cloud -Konto und ein Projekt haben.
Wenn Sie diese Google Cloud CLI verwenden möchten, müssen Sie die ID Ihres Google Cloud Projekts angeben. Eine Zusammenfassung der Befehle finden Sie unter gcloud beta device-run.
Hinweis
Bei diesen Schritten wird davon ausgegangen, dass Sie bereits Folgendes getan haben:
- Sie haben ein Google Cloud -Projekt erstellt.
- Richten Sie die Developer Device Platform gemäß der Kurzanleitung ein.
- Sie haben sich im Terminal mit
gcloudauthentifiziert. - Übersicht über Geräteausführung mit allgemeinen Informationen.
- Instrumentierten Test für Android erstellt.
Schritt 1: Geräte auswählen
Mit der device-run-Befehlszeile können Android-Tests auf allen verfügbaren physischen und virtuellen Geräten ausgeführt werden. Eine vollständige Liste der verfügbaren Geräte finden Sie entweder im interaktiven Gerätekatalog oder durch Ausführen des folgenden Befehls:
gcloud beta device-run devices list
Beispielausgabe:
ID MAKE NAME MODEL FORM OS_VERSION CAPACITY AVAILABILITY PRODUCTS
tegu-35 Google Pixel 9a tegu PHYSICAL 35 MEDIUM LOW Automation, Streaming
tokay-34 Google Pixel 9 tokay PHYSICAL 34 HIGH HIGH Automation, Streaming
Informationen zum Filtern dieser Liste finden Sie im Gerätekatalog. Wenn Sie ein bestimmtes Gerät für die Testausführung verwenden möchten, geben Sie die entsprechende ID an (z. B. tegu-35) im Befehl „submit“.
Schritt 2: Instrumentierungstest ausführen
Hinweis: Diese Flags sind für Android-Tests erforderlich:
- Gerät: Geben Sie ein Gerät mit
--devicean:--device shiba-35 - Test: Geben Sie das Test-APK mit
--testan:--test /path/to/test.apk
Geben Sie zum Ausführen des Tests einen Befehl ein, der dem folgenden ähnelt, aber Ihre eigenen Geräte-IDs und Ihren eigenen Testpfad enthält:
gcloud beta device-run sessions submit instrumentation \
--device shiba-34 \
--apps /path/to/app.apk \
--test /path/to/test.apk
Der Ergebnisberichtsordner des Jobs befindet sich unter einem Cloud Storage-Pfad wie gs://BUCKET_NAME/automation/sessions/SESSION_ID/. Sehen Sie sich die Testausgabe für den Link an, die in etwa so aussieht:
https://console.cloud.google.com/storage/browser/BUCKET_NAME/automation/sessions/SESSION_ID/.
Schritt 3: Testlauf konfigurieren
Nachdem Sie einen Test ausgeführt haben, können Sie einige Konfigurationsoptionen ausprobieren:
- Mehrere Geräte: Wenn Sie dieselben Tests auf mehreren Geräten ausführen möchten, geben Sie das Flag
--devicemit mehreren durch Kommas getrennten Geräte-IDs an, z. B.--device shiba-34,tokay-36, oder mit mehreren--device-Flags, die jeweils eine separate Geräte-ID angeben (z. B.--device shiba-34 --device tokay-36). - Zusätzliche Apps: Sie können optional ein oder mehrere APKs angeben, die vor dem Ausführen der Tests installiert werden sollen. Verwenden Sie dazu das Flag
--apps=path1,path2,...,path_n. Die von Ihnen angegebene Reihenfolge ist die Reihenfolge, in der diese Apps installiert werden. - Test-Zeitüberschreitung: Begrenzen Sie die Ausführungsdauer:
--instrumentation-timeout=10m(Der gültige Bereich liegt zwischen1mund1hund der Standardwert ist5m). - Benutzerdefinierter Cloud Storage-Bucket: Wenn Sie keinen Cloud Storage-Bucket mit dem Flag
--bucket-name=angeben, verwendet die Google Cloud CLI einen Standard-Bucket mit dem NamenPROJECT_ID-devicerun. - Wiederholungen instabiler Tests: Legen Sie die maximale Anzahl der Versuche fest, instabile Tests noch einmal auszuführen:
--flaky-test-attempts=3(Standardwert: 1 Versuch).
Schritt 4: Sharding verwenden
Wenn Sie die Developer Device Platform in einen CI/CD-Workflow (Continuous Integration und Continuous Delivery) einbinden möchten, sollten Sie Ihre Tests aufteilen. Beim Test-Sharding wird eine Reihe von Tests in Untergruppen (Shards) unterteilt, die separat und isoliert ausgeführt werden. Die Developer Device Platform führt automatisch jeden Shard parallel auf mehreren Geräten aus und schließt den gesamten Testsatz in kürzerer Zeit ab.
Schritt 4.1: Sharding-Option auswählen
Wenn Ihre Jobs nur eine geringe Anzahl von Testläufen haben oder die Gesamtausführungszeit aller Testläufe nicht lang ist, ist es nicht erforderlich, Sharding zu verwenden. Wenn Sie eine große Anzahl von Testläufen haben oder die Gesamtausführungszeit aller Testläufe lang ist, sollten Sie Sharding verwenden.
Die Developer Device Platform unterstützt sowohl intelligentes als auch einheitliches Sharding. Berücksichtigen Sie bei der Entscheidung, wie Sie Ihre Tests aufteilen, die folgenden Optionen:
Wenn alle Testläufe ungefähr gleich lange dauern, verwenden Sie einheitliches Sharding, indem Sie alle Testläufe in
nShards aufteilen.Wenn die Ausführungszeit der verschiedenen Testläufe stark variiert, verwenden Sie Smart Sharding. Die Developer Device Platform verwendet die bisherige Testausführungszeit, um verschiedene Shards zu erstellen, und versucht, alle Shards in einem ähnlichen Zeitraum abzuschließen.
Einheitliche Fragmentierung
Wenn Sie Ihre Tests mit gleichmäßiger Aufteilung auf mehrere Geräte aufteilen möchten, fügen Sie dem sessions submit instrumentation-Befehl die Flags --sharding-option=uniform und --uniform-sharding-count= hinzu:
gcloud beta device-run sessions submit instrumentation \
--test path/to/test.apk \
--device shiba-34,tokay-36 \
--sharding-option=uniform \
--uniform-sharding-count=2
Die Ausgabe sollte Job status: 2 running enthalten. Der Dienst erstellt zwei Jobs, einen für jedes Gerät. Da die Eingaben für beide Jobs identisch sind, zentralisiert der Dienst die Validierung und führt sie nur einmal aus.
Die beiden Jobs werden in der endgültigen Ausgabe des Befehls nach Abschluss separat aufgeführt:
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 execution-000 PASSED
job-001 execution-000 PASSED
Smart Sharding
Wenn Sie Ihre Tests mit Smart Sharding aufteilen möchten, fügen Sie dem sessions
submit instrumentation-Befehl die Flags --sharding-option=smart, --smart-sharding-max-shard-count=, --smart-sharding-target-duration= (in Minuten oder 1 h) und --smart-sharding-record-name= hinzu:
gcloud beta device-run sessions submit instrumentation \
--test path/to/test.apk \
--device shiba-34,shiba-35,tokay-36 \
--sharding-option=smart \
--smart-sharding-max-shard-count=3 \
--smart-sharding-target-duration=5m \
--smart-sharding-record-name=test.yaml
Sie sollten eine endgültige Ausgabe sehen, die darauf hinweist, dass drei Jobs ausgeführt wurden:
Session [session-3cd0564a] finished with result [ERROR].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 execution-000 PASSED
job-001 execution-000 PASSED
job-002 execution-000 PASSED
Hier ist eine Zusammenfassung der hier verwendeten Smart Sharding-Flags:
--smart-sharding-max-shard-count=SMART_SHARDING_MAX_SHARD_COUNT: Gibt die maximale Anzahl von Shards an, die für das Smart Sharding erstellt werden sollen. Wenn der Wert nicht festgelegt oder auf 0 gesetzt ist, werden die vom System definierten Höchstwerte verwendet. Der gültige Bereich liegt zwischen 0 und 20 für physische Geräte und zwischen 0 und 200 für virtuelle Geräte.--smart-sharding-target-duration=SMART_SHARDING_TARGET_DURATION: Geben Sie die angestrebte Ausführungszeit (z.B. 2 Minuten, 10 Minuten, 1 Stunde) pro Shard für Smart Sharding an. Der gültige Bereich liegt zwischen 2 Minuten und 1 Stunde. Erforderlich, wenn--sharding-option=smart.--smart-sharding-record-name=SMART_SHARDING_RECORD_NAME: Geben Sie den Namen der Datei mit dem Smart Sharding-Datensatz ohne die Dateiendung an. Erforderlich, wenn „--sharding-option=smart“ festgelegt ist. Diese YAML-Datei befindet sich im Google CloudStorage-Bucket, das durch--bucket-nameangegeben wird, im Verzeichnissmart-sharding/. Wenn die Datei nicht vorhanden ist, wird sie automatisch erstellt. Andernfalls wird ihr Inhalt nach Abschluss der Sitzung aktualisiert.
Schritt 5: Testlauf ansehen und verwalten
Sowohl im asynchronen als auch im synchronen Modus des Befehls sessions submit instrumentation können Sie den Befehl sessions describe verwenden, um den Jobstatus während der Ausführung abzufragen oder das Ergebnis nach Abschluss abzurufen:
gcloud beta device-run sessions describe SESSION_ID
Die Ausgabe fasst die Testergebnisse zusammen und enthält Links zu den Ergebnissen in der Google Cloud -Konsole. Beispiel:
Session SESSION_ID finished with result [FAILED].
Result files are stored at [https://console.cloud.google.com/storage/browser/BUCKET_NAME/automation/sessions/SESSION_ID/].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 all FAILED: 2 test cases failed, 5 passed
Verwenden Sie den folgenden Befehl, um alle laufenden und abgeschlossenen Sitzungen aufzulisten:
gcloud beta device-run sessions list
Sie erhalten eine Ausgabe mit der Liste der Sitzungen in Ihrem Projekt, die in etwa so aussieht:
SESSION_ID START_TIME STATE
session-4825e153 2026-07-28T16:38:43.155Z DONE
session-813ca602 2026-07-28T22:40:32.415Z DONE
session-67cd0570 2026-07-16T08:25:55.474Z DONE
session-17cc299c 2026-07-14T14:31:33.649Z DONE
session-911d0763 2026-07-09T00:39:02.051Z DONE
session-4e943fea 2026-07-15T23:08:32.252Z DONE
session-0132e458 2026-08-20T18:33:19.751Z DONE
session-1077f07b 2026-07-28T22:35:43.848Z DONE
session-71b054c6 2026-07-15T01:15:41.643Z DONE
session-4f8b2e45 2026-08-06T23:11:56.161Z DONE
Der Befehl sessions list unterstützt alle Standard-Google Cloud CLI-Flagoptionen. Beispiel:
gcloud beta device-run sessions list --limit 5
Die Ergebnisse sehen in etwa so aus:
SESSION_ID START_TIME STATE
session-4825e153 2026-07-28T16:38:43.155Z DONE
session-813ca602 2026-07-28T22:40:32.415Z DONE
93ec2df2-d5bf-4c36-b7f7-c2a4fb0dc3ce 2026-07-03T05:10:58.015Z DONE
session-67cd0570 2026-07-16T08:25:55.474Z DONE
session-17cc299c 2026-07-14T14:31:33.649Z DONE
So finden Sie alle laufenden Sitzungen:
gcloud beta device-run sessions list --filter RUNNING
Wenn Sie laufende Sitzungen haben, sehen Sie Ergebnisse wie diese:
SESSION_ID START_TIME STATE
session-d7ff8b81 RUNNING
Andernfalls erhalten Sie Listed 0 items..
Führen Sie den folgenden Befehl mit Ihrer Sitzungs-ID aus, um eine laufende Sitzung abzubrechen:
gcloud beta device-run sessions cancel SESSION_ID
Der Befehl wird sofort zurückgegeben, da die Sitzung nur als zu stornieren markiert ist. Die Kündigung erfolgt asynchron im Backend.
Wenn die Sitzung bereits beendet ist, wird nur der aktuelle Status ausgegeben. Wenn Sie den Abbruch einer abgeschlossenen Sitzung anfordern, ist das kein Fehler.
Nächste Schritte
Als Nächstes suchen und analysieren Sie Logs.