Traduction des commandes et des indicateurs de la plate-forme d'appareils pour les développeurs Firebase Test Lab

La plate-forme pour les appareils des développeurs (DDP) remplace l'ancienne console Firebase Test Lab et les workflows de la CLI Test Lab par une CLI de test unifiée, performante et sécuriséeGoogle Cloud : gcloud beta device-run

Ce guide fournit des traductions de ligne de commande et des mappages d'indicateurs de Test Lab (ou Flank) à DDP. Suivez ces conseils pour migrer vos tests manuellement. Consultez Migrer de Firebase Test Lab vers Developer Device Platform pour découvrir les outils d'automatisation, les avantages, les principales différences et les conseils de migration.

Migration du partitionnement

DDP modernise les configurations de partitionnement en remplaçant nativement le partitionnement intelligent complexe de Flank basé sur Cloud Storage et le partitionnement uniforme de Test Lab.

Segmentation uniforme

  • Définissez --sharding-option=uniform.
  • Définissez --uniform-sharding-count={count} (de 1 à 20 pour les cartes physiques, de 1 à 200 pour les cartes virtuelles).

  • Ancien Firebase Test Lab : --num-uniform-shards {N}

  • CLI DDP : --sharding-option=uniform --uniform-sharding-count={N}

Segmentation intelligente

  • Définissez --sharding-option=smart.
  • Définissez --smart-sharding-target-duration={duration} (par exemple, 2m, 10m, 1h ; plage valide : de 2m à 1h).
  • Définissez --smart-sharding-record-name={record_name} (pointe vers l'enregistrement de suivi YAML dans --bucket-name sous automation/smart-sharding/).
  • Définissez --smart-sharding-max-shard-count={max_count} (limite maximale facultative : 0 à 20 pour les cartes physiques, 0 à 200 pour les cartes virtuelles).

Utiliser les métadonnées de timing historiques sur 30 jours :

  • Ancien Flank :

    max-test-shards: 10
    shard-time: 120
    smart-flank-gcs-path: gs://my-bucket/smart-sharding/timing-record.yaml
    
  • CLI DDP :

    --sharding-option=smart \
    --smart-sharding-max-shard-count=10 \
    --smart-sharding-target-duration=2m \
    --smart-sharding-record-name=timing-record \
    --bucket-name=my-bucket
    

Configuration YAML déclarative (--flags-file)

Pour les configurations complexes ou les équipes qui préfèrent gérer des fichiers contrôlés par version plutôt que de longues commandes de terminal, gcloud fournit un préprocesseur d'arguments --flags-file universel (voir $ gcloud topic flags-file) :

gcloud beta device-run sessions submit instrumentation --flags-file=device-run-flags.yaml

Voici un exemple illustrant les indicateurs de liste et de dictionnaire à valeurs multiples :

# device-run-flags.yaml
--device:
  -   mediumphone-arm-32
  -   shiba-36
--apps:
  -   app-debug.apk
  -   test-helper.apk
--test: app-debug-androidTest.apk
--bucket-name: my-bucket
--sharding-option: smart
--smart-sharding-target-duration: 2m
--smart-sharding-record-name: timing-record
--paths-to-pull:
  -   /sdcard/screenshots
  -   /sdcard/coverage.ec
--additional-test-options:
  coverage: "true"
  clearPackageData: "true"

Exemples de traduction de commandes de bout en bout

Pour obtenir des exemples concrets, consultez ces traductions standards et complexes.

Exemple : Exécuter un test d'instrumentation standard

Ancienne CLI Firebase :

gcloud firebase test android run \
  --app=app-debug.apk \
  --test=app-debug-androidTest.apk \
  --device model=shiba,version=36 \
  --timeout=5m \
  --num-flaky-test-attempts=2 \
  --directories-to-pull=/sdcard/screenshots \
  --environment-variables key=value

Traduction de la CLI DDP :

gcloud beta device-run sessions submit instrumentation \
  --device=shiba-36 \
  --apps=app-debug.apk \
  --test=app-debug-androidTest.apk \
  --instrumentation-timeout=5m \
  --flaky-test-attempts=3 \
  --paths-to-pull=/sdcard/screenshots \
  --additional-test-options key=value

Exemple : Migrer une configuration YAML flank complexe

Ancienne configuration Flank :

app: app-debug.apk
test: app-debug-androidTest.apk
device:
  -   model: shiba
    version: 36
shard-time: 120
smart-flank-gcs-path: gs://my-bucket/smart-sharding/timing-record.yaml

Traduction de la CLI DDP :

gcloud beta device-run sessions submit instrumentation \
  --device=shiba-36 \
  --apps=app-debug.apk \
  --test=app-debug-androidTest.apk \
  --bucket-name=my-bucket \
  --sharding-option=smart \
  --smart-sharding-target-duration=2m \
  --smart-sharding-record-name=timing-record

Post-exécution et récupération des résultats

Étant donné que DDP ne se lance pas avec une interface utilisateur Web graphique (comme l'ancienne console Firebase), les développeurs doivent gérer, décrire et inspecter les résultats directement à l'aide de la CLI ou des API REST programmatiques :

# 1. List active and completed test sessions
gcloud beta device-run sessions list

# 2. Get a summary and direct Cloud Storage bucket link of a session's results
gcloud beta device-run sessions describe session-number

# 3. Get detailed metadata and print full results
gcloud beta device-run sessions describe session-number --full

# 4. Cancel a running session (replaces console cancellation)
gcloud beta device-run sessions cancel session-number

Référence du mappage des indicateurs

Voici le mappage des indicateurs pour migrer les configurations de test de Flank ou gcloud firebase test android/ios run vers la nouvelle commande gcloud beta device-run sessions submit instrumentation DDP.

Paramètres et composants principaux

Ancien paramètre (Test Lab / Flank) Paramètre DDP cible Format / Logique de conversion
--app --apps Liste. Si plusieurs APK/AAB d'application sont fournis, transmettez-les tous à --apps dans l'ordre dans lequel ils doivent être installés sur l'appareil. Le chemin d'accès peut être local ou dans Cloud Storage (gs://...).
--test --test OBLIGATOIRE Chaîne. Chemin d'accès à l'APK de test contenant les tests d'instrumentation, en local ou dans Cloud Storage.
--client-details --labels Dictionnaire de paires key=value à associer à la session de test.

Configuration et ciblage des appareils

Ancien paramètre (Test Lab / Flank) Paramètre DDP cible Format / Logique de conversion
--device model={M},version={V} --device={M}-{V} Chaîne OBLIGATOIRE qui mappe le modèle et la version de l'OS à une seule chaîne d'ID --device. L'option --device de DDP accepte plusieurs ID d'appareil séparés par des virgules (par exemple, --device=shiba-34,tokay-36) ou plusieurs indicateurs --device, chacun spécifiant un ID d'appareil distinct (par exemple, --device=shiba-34 --device=tokay-36).
--device locale={L} --locale={L} String. Associe les paramètres régionaux de l'appareil au flag --locale de premier niveau (language-region, par exemple --locale=en-US) pour passer à l'appareil avant d'exécuter le test.
--device orientation={O} --orientation={O} String. Mappe l'orientation de l'appareil au flag --orientation de premier niveau (portrait ou landscape).
N/A --coordinates String. Simule les coordonnées GPS de l'appareil (par exemple, --coordinates=37.4220,-122.0841).

Contrôle de l'exécution et instabilité

Ancien paramètre (Test Lab / Flank) Paramètre DDP cible Format / Logique de conversion
--num-flaky-test-attempts {R} --flaky-test-attempts {A} Nombre entier. Nombre maximal de tentatives d'exécution par partition de test. Convertissez le nombre de tentatives R en nombre total de tentatives A : A = R + 1 (par défaut, la valeur est 1).
N/A --flaky-test-parallel-retry Booléen : Indique si les échecs de tests doivent être retentés en parallèle (la valeur par défaut est false pour une exécution séquentielle).
N/A --flaky-test-retry-level String. Définit s'il faut réessayer au niveau shard ou au niveau test individuel (la valeur par défaut est shard).
--async --async Booléen : Maps 1:1. La commande s'exécute de manière synchrone par défaut. Transmettez-le pour revenir immédiatement au terminal. Quitte immédiatement après l'importation du fichier et affiche les ID d'opération et de session.

Exécuteur de test et cibles

Ancien paramètre (Test Lab / Flank) Paramètre DDP cible Format / Logique de conversion
--environment-variables --additional-test-options Dictionnaire des options transmises à l'exécuteur de tests d'instrumentation. Les formats acceptés dans --test-targets ne sont pas autorisés ici.
--test-targets --test-targets Dictionnaire des cibles de test ou des filtres de cibles à exécuter. Chaque cible doit être entièrement qualifiée avec le nom du package ou le nom de la classe prenant en charge les clés telles que package, notPackage, class, notClass, annotation, notAnnotation et size. Les formats testfile ou notTestfile ne sont pas acceptés.
--use-orchestrator --orchestrator-version Indique si Android Test Orchestrator doit être utilisé. Accepte auto (orchestrateur par défaut) ou une chaîne de version spécifique (par exemple, 1.6). Vous pouvez interroger les versions disponibles à l'aide de gcloud beta device-run software-versions list.
--test-runner-class --test-runner-class String. Classe de l'exécuteur de test d'instrumentation entièrement qualifiée (par exemple, com.foo.MyRunner) à utiliser. Si aucune classe de lanceur n'est spécifiée, une classe de lanceur par défaut est déterminée en examinant le fichier manifeste de l'application.
--directories-to-pull --paths-to-pull Liste. Répertoires à télécharger depuis l'appareil après l'exécution du test.
--other-files --other-files-to-push Dictionary. Liste SOURCE=DEST de fichiers auxiliaires séparés par une virgule à transférer sur l'appareil avant l'exécution du test.

Sortie et stockage

Ancien paramètre (Test Lab / Flank) Paramètre DDP cible Format / Logique de conversion
--results-bucket --bucket-name String. Bucket Cloud Storage dans lequel les artefacts de test, y compris les fichiers d'entrée locaux, les fichiers de sortie de test et les enregistrements de timing du partitionnement intelligent, sont importés (la valeur par défaut est gs://[PROJECT_ID]-devicerun si aucune valeur n'est spécifiée).
--results-dir Géré automatiquement Non compatible. Les sous-chemins sont automatiquement organisés dans Cloud Storage sous automation/sessions/{session_id}/.

Configuration du partitionnement

Ancien paramètre (Test Lab / Flank) Paramètre DDP cible Format / Logique de conversion
--num-uniform-shards {N} --sharding-option=uniform --uniform-sharding-count={N} String et Integer. La configuration combinée des indicateurs active la stratégie de sharding uniforme et définit le nombre maximal de shards (plage de valeurs valides : de 1 à 20 pour les shards physiques et de 1 à 200 pour les shards virtuels).
Flanc --max-test-shards {N} --sharding-option=smart --smart-sharding-max-shard-count={N} String et Integer. La configuration combinée des indicateurs active la stratégie de sharding intelligent et définit le nombre maximal de shards (plage de valeurs valides : de 0 à 20 pour les shards physiques et de 0 à 200 pour les shards virtuels).
Flanc --shard-time {S} --sharding-option=smart --smart-sharding-target-duration={S} OBLIGATOIRE Chaîne. Active le partitionnement intelligent avec un temps d'exécution cible (par exemple, 2m, 10m, 1h). Plage valide : de 2m à 1h.
Flanc --smart-flank-gcs-path --smart-sharding-record-name={name} --bucket-name={bucket} OBLIGATOIRE Chaîne. Nom du fichier YAML d'enregistrement du partitionnement (sans l'extension de fichier) dans --bucket-name sous smart-sharding/ dans Cloud Storage.

Options spécifiques à Android

Utilisez ce tableau pour faire correspondre les anciens indicateurs gcloud firebase test android run à leurs nouveaux équivalents device-run :

Ancien paramètre (firebase android) Paramètre DDP cible Format / Logique de conversion
--additional-apks --apps Liste. Fusionnez d'autres valeurs de liste directement dans la liste --apps principale.
N/A --bugreport String. Collectez un bugreport complet à partir de l'appareil (valeurs : always, on-failure).
N/A --dumpsys String. Collectez l'état du système à l'aide de dumpsys (valeurs : always, on-failure).
--timeout --instrumentation-timeout Durée (par exemple, 10m, 20s, 1h). Plage valide : de 1m à 3h (par défaut, 5m).
--record-video --video String. Indique quand enregistrer une vidéo de l'écran de l'appareil pendant l'exécution du test.Les valeurs valides sont always ou on-failure.

Options spécifiques à iOS

Utilisez ce tableau pour faire correspondre les anciens indicateurs gcloud firebase test ios run à leurs nouveaux équivalents device-run :

Ancien paramètre (firebase ios) Paramètre DDP cible Format / Logique de conversion
--test --test Chemin d'accès au fichier ZIP XCTest compilé.
--device model={M},version={V} --device={M}-{V} Chaîne de l'ID de l'appareil cible.
--timeout --xctest-timeout Durée (par exemple, 5m). Plage : de 1m à 1h.
--xcode-version --xcode-version ID de catalogue ou chaîne de version d'Xcode à utiliser (par exemple, xcode-16-4 ou 16.4). Les versions disponibles peuvent être interrogées à l'aide de gcloud beta device-run software-versions list.
--results-bucket --bucket-name Bucket GCS de destination personnalisée.
--async --async Synchrone par défaut, transmettez pour quitter immédiatement.
--other-files --other-files-to-push Dictionnaire au format SOURCE=BUNDLE_ID:DEST.
--directories-to-pull --paths-to-pull Liste au format BUNDLE_ID:DEVICE_PATH.
--additional-ipas --additional-apps Liste des fichiers IPA d'assistance à installer avant le test.
--xctestrun-file --xctestrun-file Chemin d'accès au fichier .xctestrun plist personnalisé.
--num-flaky-test-attempts --flaky-test-attempts Nombre entier de tentatives (par exemple, 3).
--client-details --labels Paires clé-valeur (KEY=VALUE).

Commentaires et questions

Contactez-nous pour signaler des bugs et demander des fonctionnalités, ou rejoignez notre forum de discussion.