La Developer Device Platform (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ée, axée surGoogle Cloud : gcloud beta device-run
Ce guide fournit des traductions de lignes de commande et des mappages d'options de Test Lab (ou Flank) vers DDP. Suivez ces instructions 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 des conseils de migration.
Migration de partitionnement
DDP modernise les configurations de segmentation en remplaçant de manière native la segmentation intelligente complexe de Flank basée sur Cloud Storage et la segmentation uniforme de Test Lab.
Segmentation uniforme
- Définissez
--sharding-option=uniform. Définissez
--uniform-sharding-count={count}(1 à 20 pour les cartes physiques, 1 à 200 pour les cartes virtuelles).Ancienne version de 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 : de2mà1h). - Définissez
--smart-sharding-record-name={record_name}(pointe vers l'enregistrement de suivi YAML dans--bucket-namesousautomation/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).
En utilisant 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.yamlCLI 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) :
Android
gcloud beta device-run sessions submit instrumentation --flags-file=device-run-flags.yaml
iOS
gcloud alpha device-run sessions submit xctest --flags-file=device-run-flags.yaml
Voici un exemple illustrant une liste à valeurs multiples et des options de dictionnaire :
Android
# 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"
iOS
# device-run-flags.yaml
--device:
- iphonese3-18-4
- iphone16pro-18-3
--test: MyTests.zip
--additional-apps:
- helper-app.ipa
--xcode-version: '16.4'
--xctest-timeout: 15m
--other-files-to-push:
/local/path/test-config.json: com.example.app:/Documents/test-config.json
--paths-to-pull:
- com.example.app:/Documents/screenshots
--labels:
env: staging
team: mobile-qa
Exemples de traduction de commandes de bout en bout
Consultez ces traductions standards et complexes pour obtenir des exemples concrets.
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
Comme DDP n'est pas lancé avec une UI 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
Documentation de référence sur le mappage des options
Voici le mappage des options pour migrer les configurations de test de Flank ou gcloud
firebase test android/ios run vers les nouvelles commandes DDP gcloud beta device-run sessions
submit instrumentation et gcloud alpha device-run sessions submit xctest.
Paramètres et éléments principaux
| Ancien paramètre (Test Lab/Flank) | Paramètre DDP cible | Logique de format/conversion |
|---|---|---|
Flanc --project |
--project |
Option globale standard Google Cloud (--project=PROJECT_ID) ou configuration Google Cloud CLI active. |
--client-details |
--labels |
Dictionnaire de paires key=value à associer à la session de test. |
--other-files |
--other-files-to-push |
Dictionary. Fichiers auxiliaires à transférer vers l'appareil avant l'exécution du test. Inverse l'ordre DEST=SOURCE hérité en SOURCE=DEST (SOURCE=DEVICE_PATH sur Android ; SOURCE=BUNDLE_ID:DEVICE_PATH sur iOS). |
Configuration et ciblage des appareils
| Ancien paramètre (Test Lab/Flank) | Paramètre DDP cible | Logique de format/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 une virgule (par exemple, --device=shiba-34,tokay-36 ou --device=iphone16pro-18-3) ou plusieurs indicateurs --device, chacun spécifiant un ID de l'appareil distinct (par exemple, --device=shiba-34 --device=tokay-36). |
Contrôle de l'exécution et instabilité
| Ancien paramètre (Test Lab/Flank) | Paramètre DDP cible | Logique de format/conversion |
|---|---|---|
--async |
--async |
Booléen : Maps 1:1. La commande s'exécute de manière synchrone par défaut. Transmettez cette option 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. |
--num-flaky-test-attempts {R} |
--flaky-test-attempts {A} |
Integer. Nombre maximal de tentatives d'exécution par segment de test. Convertissez le nombre de nouvelles tentatives R en limite du nombre total de tentatives A : A = R + 1 (par défaut, 1). |
Sortie et stockage
| Ancien paramètre (Test Lab/Flank) | Paramètre DDP cible | Logique de format/conversion |
|---|---|---|
--results-bucket |
--bucket-name |
Chaîne. 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 codes temporels de segmentation intelligente, sont importés (gs://[PROJECT_ID]-devicerun par défaut, si non spécifié). |
--results-dir |
Gérée automatiquement | Non compatible. Les sous-chemins sont automatiquement organisés dans Cloud Storage sous automation/sessions/{session_id}/. |
--directories-to-pull |
--paths-to-pull |
List. Fichiers ou répertoires à télécharger depuis l'appareil après l'exécution du test (DEVICE_PATH sur Android ; BUNDLE_ID:DEVICE_PATH sur iOS). |
Configuration du partitionnement horizontal
| Ancien paramètre (Test Lab/Flank) | Paramètre DDP cible | Logique de format/conversion |
|---|---|---|
--num-uniform-shards {N} |
--sharding-option=uniform --uniform-sharding-count={N} |
Chaîne et Entier. La configuration combinée des options active la stratégie de segmentation uniforme et définit le nombre maximal de segments (plage de valeurs valide : 1 à 20 segments physiques, 1 à 200 segments virtuels). |
Flanc --max-test-shards {N} |
--sharding-option=smart --smart-sharding-max-shard-count={N} |
Chaîne et Entier. La configuration combinée des options active la stratégie de segmentation intelligente et définit le nombre maximal de segments (plage de valeurs valide : 0 à 20 segments physiques, 0 à 200 segments 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 de l'enregistrement de segmentation (sans l'extension de fichier) dans --bucket-name sous smart-sharding/ dans Cloud Storage. |
Options spécifiques à Android
Utilisez ce tableau pour mapper les anciens indicateurs gcloud firebase test android run et Flank Android à leurs nouveaux équivalents gcloud beta device-run sessions submit
instrumentation :
| Type de test | Groupe de caractéristiques | Ancien paramètre (firebase android/Flank) |
Paramètre DDP cible | Logique de format/conversion |
|---|---|---|---|---|
| Android commun | Paramètres et éléments principaux | --app |
--apps |
List. Si plusieurs APK/AAB d'application sont fournis, transmettez-les tous à --apps dans l'ordre d'installation sur l'appareil. Le chemin d'accès peut être local ou dans Cloud Storage (gs://...). |
| Android commun | Paramètres et éléments principaux | --additional-apks |
--apps |
List. Fusionnez les valeurs de liste supplémentaires directement dans la liste --apps principale. |
| Android commun | Paramètres et éléments principaux | --obb-files |
--other-files-to-push |
Dictionnaire au format SOURCE=DEST. Transférez les fichiers OBB directement vers le chemin d'accès de l'appareil cible (/sdcard/Android/obb/{package_name}/). |
| Android commun | Configuration et ciblage des appareils | --device locale={L} |
--locale={L} |
Chaîne. Mappe les paramètres régionaux de l'appareil Maps avec le drapeau --locale de premier niveau (language-region, par exemple, --locale=en-US) vers lequel basculer l'appareil avant d'exécuter le test. |
| Android commun | Configuration et ciblage des appareils | --device orientation={O} |
--orientation={O} |
Chaîne. Mappe l'orientation de l'appareil sur l'option --orientation de premier niveau (portrait ou landscape). |
| Android commun | Configuration et ciblage des appareils | N/A | --coordinates |
Chaîne. Simule les coordonnées de localisation GPS de l'appareil (par exemple, --coordinates=37.4220,-122.0841). |
| Android commun | Contrôle de l'exécution et instabilité | --grant-permissions |
Modération automatique | Automatique. Les autorisations d'exécution sont accordées automatiquement par défaut (équivalent à --grant-permissions=all). |
| Android commun | Sortie et stockage | N/A | --dumpsys |
Chaîne. Collectez l'état du système à l'aide de dumpsys (valeurs : always, on-failure). |
| Android commun | Sortie et stockage | N/A | --bugreport |
Chaîne. Collectez un bugreport complet à partir de l'appareil (valeurs : always, on-failure). |
| Android commun | Sortie et stockage | --record-video |
--video |
Chaîne. 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. |
| Instrumentation Android | Paramètres et éléments principaux | --type=instrumentation |
sessions submit instrumentation |
La structure de la sous-commande détermine le type de test au lieu d'un flag --type. |
| Instrumentation Android | Paramètres et éléments principaux | --test |
--test |
OBLIGATOIRE Chaîne. Chemin d'accès à l'APK de test contenant les tests d'instrumentation, en local ou dans Cloud Storage. |
| Instrumentation Android | Contrôle de l'exécution et instabilité | --timeout |
--instrumentation-timeout |
Durée (ex. : 10m, 20s, 1h). Plage valide : de 1m à 3h (par défaut : 5m). |
| Instrumentation Android | Contrôle de l'exécution et instabilité | N/A | --flaky-test-parallel-retry |
Booléen : Indique si les échecs de test doivent être réessayés en parallèle (la valeur par défaut est false pour l'exécution séquentielle). |
| Instrumentation Android | Contrôle de l'exécution et instabilité | N/A | --flaky-test-retry-level |
Chaîne. Définit si les nouvelles tentatives doivent être effectuées au niveau de shard ou de chaque test (par défaut, shard). |
| Instrumentation Android | Exécuteur de test et cibles | --test-runner-class |
--test-runner-class |
Chaîne. Classe d'exécuteur de test d'instrumentation complète (par exemple, com.foo.MyRunner) à utiliser. Si elle n'est pas spécifiée, une classe d'exécuteur par défaut est déterminée en examinant le fichier manifeste de l'application. |
| Instrumentation Android | Exécuteur de test et cibles | --test-targets |
--test-targets |
Dictionnaire des cibles de test ou des filtres de cible à exécuter. Chaque cible doit être entièrement qualifiée avec le nom du package ou de la classe compatible avec des clés telles que package, notPackage, class, notClass, annotation, notAnnotation et size. Les formats testfile ou notTestfile ne sont pas acceptés. |
| Instrumentation Android | Exécuteur de test et cibles | --use-orchestrator |
--orchestrator-version |
Indique si vous devez utiliser Android Test Orchestrator. Prend auto (orchestrateur par défaut) ou une chaîne de version spécifique (par exemple, 1.6). Les versions disponibles peuvent être interrogées à l'aide de gcloud beta device-run software-versions list. |
| Instrumentation Android | Exécuteur de test et cibles | --environment-variables |
--additional-test-options |
Dictionnaire des options transmises à l'exécuteur de tests d'instrumentation. Les formats compatibles avec --test-targets ne sont pas autorisés ici. |
Options spécifiques à iOS
Utilisez ce tableau pour mapper les anciens indicateurs iOS gcloud firebase test ios run et Flank à leurs nouveaux équivalents gcloud alpha device-run sessions submit xctest :
| Type de test | Groupe de caractéristiques | Ancien paramètre (firebase ios/Flank) |
Paramètre DDP cible | Logique de format/conversion |
|---|---|---|---|---|
| iOS courants | Paramètres et éléments principaux | --additional-ipas |
--additional-apps |
Liste des fichiers d'assistance .ipa à installer sur l'appareil avant l'exécution du test. |
| XCTest iOS uniquement | Paramètres et éléments principaux | --type=xctest |
sessions submit xctest |
La structure de la sous-commande détermine le type de test au lieu d'un flag --type (utilise gcloud alpha). |
| XCTest iOS uniquement | Paramètres et éléments principaux | --test |
--test |
OBLIGATOIRE Chaîne. Chemin d'accès au fichier ZIP contenant l'application iOS et les fichiers XCTest, en local ou dans Cloud Storage. |
| XCTest iOS uniquement | Contrôle de l'exécution et instabilité | --timeout |
--xctest-timeout |
Durée (ex. : 5m, 15m, 1h). Plage valide : de 1m à 1h (par défaut : 5m). |
| XCTest iOS uniquement | Sortie et stockage | --record-video |
--video |
Quand enregistrer une vidéo : always ou on-failure. Une vidéo est enregistrée pour chaque scénario de test d'UI (iOS 17 ou version ultérieure). |
| XCTest iOS uniquement | Exécuteur de test et cibles | --xctestrun-file |
--xctestrun-file |
Chaîne. Chemin d'accès à un fichier .xctestrun personnalisé, local ou dans Cloud Storage. |
| XCTest iOS uniquement | Exécuteur de test et cibles | --xcode-version |
--xcode-version |
Chaîne. ID de catalogue ou chaîne de version de 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. |
Commentaires et questions
Contactez-nous pour signaler des bugs, demander des fonctionnalités ou rejoindre notre forum de discussion.