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 : 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).
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.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) :
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.