Nous avons le plaisir d'annoncer l'aperçu de l'gcloud beta device-run
interface de ligne de commande dans la plate-forme d'appareils pour développeurs (DDP), une amélioration de la CLI gcloud
firebase test.
La CLI gcloud beta device-run simplifie et modernise l'exécution des tests d'automatisation et d'instrumentation sur l'appareil, qu'il soit physique ou virtuel. Dans la version Preview, Android Instrumentation et iOS XCTest sont compatibles. Pour obtenir des
instructions, consultez la
présentation de Device Run.
Présentation et avantages
Le passage de Firebase Test Lab à la plate-forme d'appareils pour développeurs (DDP) offre plusieurs avantages majeurs, en particulier en termes de réduction des coûts, de vitesse d'exécution des tests, de débogage avancé et de prise en charge intégrée des workflows basés sur l'IA.
Les développeurs qui exécutent des tests mobiles dans le cloud doivent jongler entre différents modèles de configuration (Firebase Test Lab) ou gérer des pipelines et des couches d'encapsulation d'outils supplémentaires (Flank).
La CLI gcloud beta device-run de la Developer Device Platform fusionne ces fonctionnalités directement dans la Google Cloud CLI de base. Elle fournit une interface backend plus robuste, déclarative et évolutive qui exécute les tests de manière prévisible et efficace sur les appareils physiques et virtuels.
Voici les principales fonctionnalités qui font de la DDP une plate-forme supérieure à Firebase Test Lab :
Smart Sharding avancé
Alors que Firebase Test Lab s'appuie sur des données de timing à exécution unique pour segmenter les tests, le Smart Sharding de la DDP est beaucoup plus intelligent :
- _Données historiques sur 30 jours_ : la DDP analyse jusqu'à 30 jours d'historique d'exécution pour distribuer les tests dans des segments stables et optimisés.
- Suivi de la durée spécifique à l'appareil : la DDP suit les durées d'exécution des tests par modèle d'appareil spécifique au lieu d'utiliser des moyennes de plate-forme généralisées sur tous les appareils.
- Modélisation de la surcharge de l'orchestrateur : la DDP prend en compte la surcharge de démarrage de l'Android Test Orchestrator pour chaque instance de test, ce qui garantit que les segments ne dépassent pas leurs durées cibles.
Nouvelles tentatives précises et économiques
Dans Test Lab, si un seul scénario de test d'un segment échoue, l'ensemble du segment (potentiellement des dizaines de tests) doit être retenté, ce qui augmente à la fois les durées d'exécution et les coûts facturés. La DDP introduit des mécanismes de nouvelle tentative très efficaces :
- Nouvelles tentatives ciblées au niveau du scénario de test : isole et retente uniquement les scénarios de test spécifiques qui échouent dans un segment.
- Nouvelles tentatives séquentielles pour les tests irréguliers : exécute les nouvelles tentatives pour les tests irréguliers de manière séquentielle par défaut (au lieu de simultanément comme Test Lab). Combiner cela avec les nouvelles tentatives au niveau du scénario de test réduit considérablement le nombre total d'exécutions de test, ce qui permet de réaliser des économies importantes sur les coûts de facturation des appareils.
Prise en charge avancée des tests Android
La DDP résout les limites de longue date de l'API de test Test Lab :
- APK de test uniquement (aucune application factice) : historiquement, Test Lab nécessitait une application factice pour exécuter des tests d'auto-instrumentation. La DDP permet d'exécuter des tests d'instrumentation avec un seul APK de test.
- Délai avant expiration étendu pour les segments : la DDP augmente la limite d'exécution maximale pour un seul segment de test d'instrumentation, qui passe de 45 minutes dans Test Lab à 3 heures.
- Plusieurs orchestrateurs : la DDP est compatible avec plusieurs versions de l'Android Test Orchestrator.
- Prise en charge intégrée des binaires C++ : la DDP permet d'exécuter des binaires Android C++.
Interactions enrichies avec les appareils et débogage avancé
La DDP fournit des interactions plus approfondies sur l'appareil et des artefacts de débogage beaucoup plus riches que ceux disponibles dans Test Lab :
- Positions fictives : la DDP permet de simuler les coordonnées GPS de l'appareil.
- Prise en charge des ApkSets : les développeurs peuvent installer des ApkSets (fichiers .
apks) directement sur les appareils distants. - Débogage avancé : la DDP expose directement les journaux système et les informations de débogage essentiels au développeur, y compris
dumpsysetbugreport.
Catalogue d'appareils hautement évolutif
La DDP remplace le catalogue d'environnement rigide et lourd de Test Lab par une API de catalogue d'appareils entièrement repensée :
- Filtrage côté serveur : accélère les requêtes et réduit la latence de la charge utile en permettant aux développeurs de filtrer les appareils côté serveur.
- Données de disponibilité en temps réel : la DDP fournit des informations sur la disponibilité des appareils en temps réel directement à Device Run. Vous pouvez ainsi choisir des appareils disponibilité élevée et éviter les longues files d'attente, une fonctionnalité qui manque complètement à Test Lab.
Choisir votre chemin de migration
Automatiser votre migration avec l'IA
Pour faciliter cette transition, nous avons développé une compétence d'agent de traduction dédiée
skill: migrating-device-run.
Si vous utilisez des agents de codage IA, tels que Antigravity, Claude Code, Codex, vous pouvez facilement traduire vos scripts de test personnalisés. Il vous suffit de copier l'URL du schéma de compétence de migration et de la coller dans l'espace de travail de votre assistant IA, comme décrit ici.
Modèle de prompt de migration
You are an expert migration assistant. I want to migrate my test command and
configuration to the new `gcloud beta device-run` command format.
Use this migration guideline as your ruleset:
https://docs.cloud.google.com/developer-device-platform/device-run/migrate/migration-skill.md.txt
Translate the following command and configuration to the new `gcloud beta
device-run` CLI: (Insert your raw Firebase Test / Flank YAML or bash script
here.)
Migrer manuellement
Suivez nos traductions de commandes et d'options pour migrer manuellement de Firebase Test Lab vers la DDP. Lorsque vous vous préparez à migrer, gardez à l'esprit les différences structurelles suivantes :
- Architecture de la CLI axée sur les ressources :
gcloud beta device-runadopte un modèle de commande<resource> <verb>moderne dans trois groupes de ressources principaux :devices: accès direct à la CLI à l'inventaire du catalogue d'appareils et informations complètes sur les appareils, en remplacement des commandes fragmentées héritéesfirebase test android/ios models/versions/locales.software-versions: accès direct à la CLI aux versions logicielles compatibles (telles que les versions Xcode et Android Test Orchestrator), en remplacement de la commandefirebase test ios xcode-versions listhéritée.sessions: gestion du cycle de vie de la session de bout en bout directement dans le terminal, y comprissessions submit instrumentation,sessions submit xctest,sessions wait,sessions describe [--full],sessions list, etsessions cancel.
- Structure des sous-commandes : les types de test sont standardisés et imbriqués sous
sessions submiten tant que sous-commandes propres au lieu d'utiliser des options de type.- DDP :
gcloud beta device-run sessions submit instrumentation(Android) ougcloud alpha device-run sessions submit xctest(iOS) - Test Lab :
gcloud firebase test android run --type=instrumentation(Android) ougcloud firebase test ios run --type=xctest(iOS)
- DDP :
- Applications fusionnées et au pluriel : les APK standards et supplémentaires sont fusionnés
sous la liste d'options
--appsau pluriel (par exemple,--apps=app.apk,helper.apk) au lieu d'être divisés en--appet--additional-apks. - Arguments de liste et de dictionnaire structurés : remplacement des fichiers séparés par une virgule
ou des listes d’environnement par des formats de liste et de dictionnaire CLI structurés :
--other-files-to-push KEY=VALUE,--additional-test-options KEY=VALUE,--paths-to-pullet--test-targets. - Contrôles unifiés de segmentation et de nouvelle tentative : prise en charge transparente de la segmentation uniforme
et du Smart Sharding, ainsi que des nouvelles tentatives parallèles
(
--flaky-test-parallel-retry,--flaky-test-retry-level) et des diagnostics d'exécution (--dumpsys,--bugreport,--video). - Exécution asynchrone :
gcloud beta device-runest compatible avec l'exécution asynchrone, ce qui vous permet d'exécuter des tests sans attendre qu'ils soient terminés. Utilisezgcloud beta device-run sessions wait <SESSION_ID>pour attendre la fin de l'exécution. - Configuration YAML déclarative (
--flags-file) : les équipes qui migrent depuis Flank et qui préfèrent les fichiers YAML contrôlés par version aux chaînes de script shell peuvent utiliser la prise en charge universelle degcloud's--flags-file=device-run-flags.yaml.
Étape suivante
- Utilisez notre guide de démarrage rapide pour configurer la plate-forme d'appareils pour développeurs.
- Explorez notre catalogue d'appareils pour trouver tous les appareils disponibles.
- Découvrez Device Run pour commencer à exécuter des tests.
- Consultez nos traductions de commandes et d'options pour voir un mappage des options de Test Lab et de Flank vers la DDP.