In diesem Leitfaden wird beschrieben, wie Sie mit der
gcloud beta device-run-CLI einen Android-Instrumentierungstest ausführen und die Ergebnisse in der Google Cloud Console aufrufen. Dabei wird davon ausgegangen, dass Sie ein
Konto und ein Projekt haben. Google Cloud
Wenn Sie diese Google Cloud CLI verwenden möchten, müssen Sie Ihre Google Cloud Projekt
ID angeben. Eine Zusammenfassung der Befehle finden Sie unter gcloud beta device-run für eine
Zusammenfassung der Befehle.
Hinweis
Bei diesen Schritten wird davon ausgegangen, dass Sie bereits ein Google Cloud Projekt erstellt, die Einrichtungsschritte im Schnellstartleitfaden für die Developer Device Platform
ausgeführt und sich im Terminal mit gcloud
authentifiziert haben.
Außerdem muss ein Android-Instrumentierungstest bereit sein. Eine Anleitung finden Sie unter Instrumentierte Tests erstellen.
Darüber hinaus sollten Sie die Geräte-IDs der Geräte ermittelt haben, auf denen Sie Ihre Arbeitslasten ausführen möchten. Eine Anleitung finden Sie unter Geräteverzeichnis.
Testen
Nachdem Sie nun die IDs der Geräte kennen, die zum Testen Ihrer App verfügbar sind, können Sie
Geräte mit dem gcloud beta device-run sessions submit
instrumentation Befehl und dem --device Flag angeben, um Instrumentierungstests auszuführen.
Führen Sie zum Ausführen des Tests einen Befehl aus, der dem folgenden ähnelt, aber Ihre eigenen Geräte-IDs und Ihren Testpfad enthält:
gcloud beta device-run sessions submit instrumentation \
--device shiba-34 \
--apps /path/to/app.apk \
--test /path/to/test.apk
Der Ordner mit dem Ergebnisbericht des Jobs befindet sich unter einem Cloud Storage-Pfad wie
gs://<your_project_id>/automation/sessions/session-id/. Den Link finden Sie in der Testausgabe. Er sieht in etwa so aus: https://console.cloud.google.com/storage/browser/your_project_id/automation/sessions/session-id/.
Testlauf konfigurieren
Nachdem Sie einen Test ausgeführt haben, können Sie einige Konfigurationsoptionen ausprobieren:
- Wenn Sie dieselben Tests auf mehreren Geräten ausführen möchten, geben Sie das
--deviceFlag mit mehreren durch Kommas getrennten Geräte-IDs an, z. B.--device shiba-34,tokay-36, oder mit mehreren--device-Flags, die jeweils eine andere Geräte-ID angeben (z. B.--device shiba-34 --device tokay-36). - Optional können Sie mit dem Flag
--apps=path1,path2,...,path_neine oder mehrere APKs angeben, die vor dem Ausführen der Tests installiert werden sollen. Die Reihenfolge, in der Sie sie angeben, ist die Reihenfolge, in der diese Apps installiert werden. - Sie müssen Ihre Test-APK mit dem Flag
--testangeben. - Wenn Sie mit den Flags
--appsoder--testeinen lokalen Pfad angeben, kopiert die Google Cloud CLI ihn jedes Mal, wenn Sie den Befehl ausführen, automatisch in Ihren Cloud Storage-Bucket untergs://my-project-id/automation/inputs/date_time_four_chars_suffix/. - Da das Hochladen großer APKs zeitaufwendig sein kann, können Sie direkt auf Ihre APKs verweisen, indem Sie ihre Cloud Storage-Pfade (
gs://) verwenden, um Zeit beim Hochladen zu sparen.
Der Befehl sessions submit instrumentation blockiert standardmäßig bei Sitzungsergebnissen. Das bedeutet, dass er auf den Abschluss des Testlaufs wartet und Ergebnisse wie die folgenden ausgibt:
Using the default Cloud Storage bucket [gs://<my-project-id>] for input and result files. Will create the bucket if it does not exist.
Uploading [app.apk].
Uploading [test.apk].
Initiated long-running operation [operation-number] to create session.
Creating session [session-id] in location [global].
Result files will be stored at [https://console.cloud.google.com/storage/browser/<my-project-id>/automation/sessions/session-id/].
Waiting for session [session-id] to complete....done.
Session [session-id] finished with result [FAILED].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 all FAILED: 2 test cases failed, 5 passed
Wenn Sie den Befehl asynchron ausführen möchten, fügen Sie das Flag --async ein. Dadurch kann der Befehl sofort beendet werden, nachdem Dateien in Cloud Storage hochgeladen und die Vorgangs-ID und Sitzungs-ID ausgegeben wurden. Sie können mit dem Befehl operations wait und der Vorgangs-ID auf die Ausführung warten. Er wird blockiert, bis der Job abgeschlossen ist:
gcloud beta device-run operations wait your_operation_id
Sharding verwenden
Wenn Sie die Developer Device Platform in einen CI/CD-Workflow (Continuous Integration und Continuous Delivery) einbeziehen 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 jeden Shard automatisch parallel auf mehreren Geräten aus und schließt die gesamte Testreihe in kürzerer Zeit ab.
Sharding-Optionen
Wenn Ihre Jobs nur eine kleine Anzahl von Testfällen haben oder die Gesamtausführungszeit aller Testfälle nicht lang ist, ist es nicht erforderlich, Sharding zu verwenden. Wenn Sie eine große Anzahl von Testfällen haben oder die Gesamtausführungszeit aller Testfälle lang ist, sollten Sie Sharding verwenden.
Die Developer Device Platform unterstützt sowohl intelligentes als auch einheitliches Sharding. Bei der Entscheidung, wie Sie Ihre Tests aufteilen, sollten Sie die folgenden Optionen berücksichtigen:
Wenn alle Testfälle ungefähr gleich viel Zeit in Anspruch nehmen, verwenden Sie einheitliches Sharding, indem Sie alle Testfälle in
nShards aufteilen.Wenn die Ausführungszeit der verschiedenen Testfälle stark variiert, verwenden Sie intelligentes Sharding. Die Developer Device Platform verwendet die bisherige Testausführungszeit, um verschiedene Shards zu erstellen, und versucht, alle Shards in einer ähnlichen Zeit abzuschließen.
Einheitliches Sharding
Wenn Sie Ihre Tests mit einheitlichem Sharding aufteilen möchten, fügen Sie die Flags --sharding-option=uniform und --uniform-sharding-count= in den Befehl sessions submit instrumentation ein:
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
Intelligentes Sharding
Wenn Sie Ihre Tests mit intelligentem Sharding aufteilen möchten, fügen Sie die Flags --sharding-option=smart,
--smart-sharding-max-shard-count=, --smart-sharding-target-duration= (in
Minuten oder 1 Stunde) und --smart-sharding-record-name= in den Befehl sessions
submit instrumentation ein:
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
Die endgültige Ausgabe sollte drei ausgeführte Jobs enthalten:
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 Flags für intelligentes Sharding:
--smart-sharding-max-shard-count=SMART_SHARDING_MAX_SHARD_COUNT: Specify the maximum number of shards to create for smart sharding. Wenn nicht festgelegt oder auf 0 gesetzt, werden vom System definierte 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: Gibt die Zielausführungszeit (z.B. 2 Minuten, 10 Minuten, 1 Stunde) pro Shard für intelligentes 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: Gibt den Namen der Aufzeichnungsdatei für intelligentes Sharding ohne Dateiendung an. Erforderlich, wenn `--sharding-option=smart`. Diese YAML-Datei befindet sich im Google Cloud Storage-Bucket, der mit--bucket-nameangegeben wurde, imsmart-sharding/Verzeichnis. Wenn die Datei nicht vorhanden ist, wird sie automatisch erstellt. Andernfalls wird ihr Inhalt nach Abschluss der Sitzung aktualisiert.
Testlauf untersuchen und verwalten
Sowohl im asynchronen als auch im synchronen Modus des Befehls sessions submit instrumentation können Sie mit dem Befehl sessions describe den Jobstatus während der Ausführung abfragen oder das Ergebnis nach Abschluss abrufen:
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 Console. Beispiel:
Session [session-id] finished with result [FAILED].
Result files are stored at [https://console.cloud.google.com/storage/browser/your_project_id-devicerun/automation/sessions/session-id/].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 all FAILED: 2 test cases failed, 5 passed
Mit dem folgenden Befehl können Sie alle laufenden und abgeschlossenen Sitzungen auflisten:
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-gcloud-Flag
Optionen. Beispiel:
gcloud beta device-run sessions list --limit 5
Das Ergebnis sieht 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
Wenn Sie alle laufenden Sitzungen finden möchten, führen Sie Folgendes aus:
gcloud beta device-run sessions list --filter RUNNING
Wenn Sie laufende Sitzungen haben, sehen Sie Ergebnisse wie die folgenden:
SESSION_ID START_TIME STATE
session-d7ff8b81 RUNNING
Andernfalls erhalten Sie die Meldung Listed 0 items.
Wenn Sie eine laufende Sitzung abbrechen möchten, führen Sie diesen Befehl mit Ihrer Sitzungs-ID aus:
gcloud beta device-run sessions cancel your_session_id
Der Befehl wird sofort zurückgegeben, da die Sitzung nur zum Abbrechen markiert ist. Der Abbruch erfolgt asynchron im Back-End.
Wenn die Sitzung bereits beendet ist, wird nur der aktuelle Status ausgegeben. Das Anfordern des Abbruchs für eine beendete Sitzung ist kein Fehler.
Nächste Schritte
Als Nächstes müssen Sie Logs suchen und analysieren.