Developer Device Platform – Übersicht über Geräteausführungen

Willkommen bei „Developer Device Platform Device Run“. Damit können Sie Tests auf physischen und virtuellen Android-Geräten sowie auf physischen iOS-Geräten in der Cloud ausführen. Auf dieser Seite werden Gemeinsamkeiten beim Ausführen von Android- und iOS-Tests beschrieben. Plattformspezifische Schritte findest du unter Device Run für Android und Device Run für iOS.

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.

Diese Flags sind erforderlich:

  • Gerät: Geben Sie ein Gerät mit --device an: --device shiba-35 oder --device iphonese3-18-4
  • Test: Geben Sie das Test-APK oder ‑IPA mit --test an: --test /path/to/test.apk oder --test /path/to/test.ipa

Die folgenden Konfigurationsoptionen sind sowohl für Android- als auch für iOS-Tests verfügbar.

Cloud Storage-Pfade für Ein- und Ausgabe

  • Benutzerdefinierter Cloud Storage-Bucket: Sie können einen benutzerdefinierten Cloud Storage-Bucket für Ein- und Ausgaben angeben: --bucket-name=my-custom-bucket Wenn Sie keinen Cloud Storage-Bucket mit dem Flag --bucket-name= angeben, verwendet die Google Cloud CLI einen Standard-Bucket mit dem Namen PROJECT_ID-devicerun.
  • Eingabedateien: Wenn Sie mit den Flags --test, --additional-apps oder --xctestrun-file einen lokalen Pfad angeben, kopiert die Google Cloud CLI ihn automatisch in Ihren Cloud Storage-Bucket unter gs://BUCKET_NAME/automation/inputs/DATE_TIME_FOUR_CHARS_SUFFIX/, wenn Sie den Befehl ausführen. BUCKET_NAME wird standardmäßig auf PROJECT_ID-devicerun gesetzt.
  • Cloud-Pfade: Da das Hochladen großer Dateien zeitaufwendig sein kann, können Sie direkt auf sie verweisen, indem Sie ihre gs://-Pfade in Cloud Storage verwenden. So sparen Sie Uploadzeit.
  • Ergebnisdateien: Ausgabeartefakte werden in Ihren Cloud Storage-Bucket unter gs://BUCKET_NAME/automation/sessions/session-[SESSION_ID]/ hochgeladen.

Synchrone und asynchrone Ausführungen

Standardmäßig ist der Befehl „submit“ blockierend (synchron). Das Tool wartet, bis der Test abgeschlossen ist, und gibt dann eine Zusammenfassungstabelle der Ergebnisse aus.

Wenn Sie die Sitzung einreichen und sofort nach dem Hochladen von Dateien in Cloud Storage zurückkehren möchten, fügen Sie das Flag --async hinzu:

Android

gcloud beta device-run sessions submit instrumentation \
  --device shiba-35 \
  --test ./ANDROID_TESTS.apk \
  --async

iOS

gcloud beta device-run sessions submit xctest \
  --device iphonese3-18-4 \
  --test ./IOS_TESTS.zip \
  --async

Dadurch wird sofort eine Sitzungs-ID zurückgegeben. Anschließend können Sie mit dem Befehl sessions wait darauf warten:

gcloud beta device-run sessions wait SESSION_ID

Der Befehl wird blockiert, bis der Job abgeschlossen ist.

Mehrere Geräte

Wenn Sie dieselben Tests auf mehreren Geräten ausführen möchten, geben Sie das Flag --device mit mehreren durch Kommas getrennten Geräte-IDs oder mit mehreren --device-Flags an, wobei jedes eine eigene Geräte-ID angibt.

Android

gcloud beta device-run sessions submit instrumentation \
  --device shiba-34,tokay-36 \
  --test ./ANDROID_TESTS.apk

oder:

gcloud beta device-run sessions submit instrumentation \
  --device shiba-34 \
  --device tokay-36 \
  --test ./ANDROID_TESTS.apk

iOS

gcloud beta device-run sessions submit xctest \
  --device iphonese3-18-4,iphonese3-26-3 \
  --test ./IOS_TESTS.zip

oder:

gcloud beta device-run sessions submit xctest \
  --device iphonese3-18-4 \
  --device iphonese3-26-3 \
  --test ./IOS_TESTS.zip

Testzeitlimit

Ausführungsdauer des Tests begrenzen:

Android

gcloud beta device-run sessions submit instrumentation \
  --device shiba-35 \
  --test ./ANDROID_TESTS.apk \
  --instrumentation-timeout=10m

iOS

gcloud beta device-run sessions submit xctest \
  --device iphonese3-18-4 \
  --test ./IOS_TESTS.zip \
  --xctest-timeout=10m

Der gültige Bereich liegt zwischen 1m und 1h. Der Standardwert ist 5m.

Softwareversionen

Verfügbare Softwarepakete und Versionen von AndroidX Test Orchestrator und Apple Xcode finden und verwenden. Prüfen Sie vor dem Konfigurieren von Testläufen deren Lebenszyklen, unterstützte Versionen und Metadaten.

Listen Sie zuerst alle verfügbaren Softwarepakete und ihre Versionen auf:

gcloud beta device-run software-versions list

Die Ausgabe sollte in etwa so aussehen:

ID                                NAME                              SOFTWARE_TYPE               VERSION  STATE   IS_DEFAULT
androidx-test-orchestrator-1-4-1  AndroidX Test Orchestrator 1.4.1  ANDROIDX_TEST_ORCHESTRATOR  1.4.1    ACTIVE  True
androidx-test-orchestrator-1-6-1  AndroidX Test Orchestrator 1.6.1  ANDROIDX_TEST_ORCHESTRATOR  1.6.1    ACTIVE
xcode-16-4                        Xcode 16.4                        XCODE                       16.4     ACTIVE
xcode-26-2                        Xcode 26.2                        XCODE                       26.2     ACTIVE  True

Beschreiben Sie dann ein bestimmtes Paket anhand seiner genauen Ressourcen-ID aus der Liste:

Android

gcloud beta device-run software-versions describe androidx-test-orchestrator-1-4-1

iOS

gcloud beta device-run software-versions describe xcode-16-4

Die Ausgabe sollte in etwa so aussehen:

Android

id: androidx-test-orchestrator-1-4-1
isDefault: true
lifecycle:
  state: ACTIVE
name: AndroidX Test Orchestrator 1.4.1
softwareType: ANDROIDX_TEST_ORCHESTRATOR
version: 1.4.1

iOS

id: xcode-16-4
lifecycle:
  state: ACTIVE
name: Xcode 16.4
softwareType: XCODE
supportedIosVersions:

-   '15.0'
-   '15.1'
-   '15.2'
-   '15.4'
-   '15.7'
-   '16.0'
-   '16.1'
-   '16.2'
-   '16.3'
-   '16.5'
-   '16.6'
-   '18.0'
-   '18.3'
-   '18.4'
version: '16.4'

Nachdem Sie nun wissen, welche Softwareversionen verfügbar sind, können Sie sie in Ihren Testläufen mit den Flags --orchestrator-version oder --xcode-version verwenden:

Android

gcloud beta device-run sessions submit instrumentation \
  --device shiba-35 \
  --test ./ANDROID_TESTS.apk \
  --orchestrator-version=1.4.1

Weitere Informationen finden Sie unter Orchestrator aktivieren.

iOS

gcloud beta device-run sessions submit xctest \
  --device iphonese3-18-4 \
  --test ./IOS_TESTS.zip \
  --xcode-version=16.4

Weitere Informationen finden Sie unter Device Run für iOS.

Eingabevalidierung

Die Developer Device Platform versucht, Ihre Eingaben, einschließlich Artefakte, zu validieren und gibt bei fehlerhaften Eingaben ERROR anstelle von PASSED oder FAILED zurück:

Session [session-94b57778] finished with result [ERROR].
JOB NAME  EXECUTION NAME  EXECUTION RESULT
job-000   execution-000   ERROR

Hängen Sie nun --full an den Befehl sessions describe an, um weitere Details zur Sitzung aufzurufen:

gcloud beta device-run sessions describe --full session-94b57778

Die Ausgabe sieht dann etwa so aus:

name: projects/user-test1/locations/global/sessions/session-94b57778
sessionConfig:
  displayName: instrumentation-session
  jobConfigs:
  -   action:
      androidInstrumentationTest:
        testInstallable:
          files:
          -   gcsInputFile:
              path: gs://user-test1-devicerun/automation/inputs/2026-09-16_18:55.17372947_EECF/my-test.apk
    allocationConfig:
      deviceConfigs:
      -   actions:
        -   androidLogcat: {}
        requirement:
          deviceId: mediumphone-arm-34
    displayName: job-000
  outputDirectoryConfig:
    gcsOutputDirectory:
      path: gs://user-test1-devicerun/automation/sessions
sessionReport:
  endTime: '2026-09-16T18:55:49.721Z'
  id: ed681f23-669b-4464-8a93-b28456e58136
  jobReports:
  -   displayName: job-000
    endTime: '2026-09-16T18:55:45.839Z'
    executionReports:
    -   displayName: execution-000
      endTime: '2026-09-16T18:55:46.694Z'
      id: ce370173-af94-4dd7-acc6-0863e4d2e9ec
      result:
        cause:
          summary:
            message: The instrumentation target package does not match any of the
              installable packages.
            reason: INSTRUMENTATION_TARGET_MISMATCH
            type: CUSTOMER
        resultType: ERROR
      startTime: '1970-01-01T00:00:00Z'
      status:
        statusType: PENDING
    id: 953b5106-3c20-40f0-aceb-18af89cd1b83
    result:
      cause:
        summary:
          message: The instrumentation target package does not match any of the installable
            packages.
          reason: INSTRUMENTATION_TARGET_MISMATCH
          type: CUSTOMER
      resultType: ERROR
    startTime: '2026-09-16T18:55:31.651Z'
    status:
      statusType: DONE
  result:
    resultType: ERROR
  startTime: '2026-09-16T18:55:24.442Z'
  status:
    statusType: DONE

Nächste Schritte

Android-Test ausführen oder iOS-Test ausführen mit der Developer Device Platform