Dépannage et questions fréquentes concernant Test Lab
Cette page fournit une aide au dépannage et des réponses aux questions fréquentes sur l'exécution de tests avec Firebase Test Lab. Les problèmes connus sont également documentés. Si vous ne trouvez pas ce que vous cherchez ou si vous avez besoin d'aide supplémentaire, rejoignez le canal #test-lab sur Firebase Slack ou contactez l'assistance Firebase.
Dépannage
Pourquoi mon test prend-il autant de temps à s'exécuter ?
Lorsque vous sélectionnez un appareil avec un niveau de capacité élevé dans le catalogue Test Lab, les tests peuvent démarrer plus rapidement. Lorsqu'un appareil a une capacité faible, l'exécution des tests peut prendre plus de temps. Si le nombre de tests appelés est beaucoup plus élevé que la capacité des appareils sélectionnés, les tests peuvent prendre plus de temps.
Les tests exécutés sur n'importe quel niveau de capacité d'appareil peuvent prendre plus de temps en raison des facteurs suivants :
le trafic, qui affecte la disponibilité des appareils et la vitesse des tests.
Défaillances de l'appareil ou de l'infrastructure, qui peuvent survenir à tout moment. Pour vérifier si une infrastructure a été signalée pour Test Lab, consultez le tableau de bord d'état Firebase.
Pour en savoir plus sur la capacité des appareils dans Test Lab, consultez les informations sur la capacité des appareils pour Android et iOS.
Pourquoi les résultats des tests sont-ils non concluants ?
Les résultats de tests non concluants sont généralement dus à des exécutions de tests annulées ou à des erreurs d'infrastructure.
Les erreurs d'infrastructure sont dues à des problèmes internes à Test Lab, comme des erreurs réseau ou des comportements inattendus de l'appareil. Test Lab met fin en interne aux exécutions de tests qui produisent des erreurs d'infrastructure à plusieurs reprises avant de signaler un résultat non concluant. Toutefois, vous pouvez désactiver ces nouvelles tentatives à l'aide de failFast.
Pour déterminer la cause de l'erreur, procédez comme suit :
Réessayez le test dans Test Lab pour vérifier qu'il est reproductible.
Si possible, essayez d'exécuter le test sur un autre appareil ou type d'appareil.
Si le problème persiste, contactez l'équipe Test Lab sur la chaîne #test-lab de Firebase Slack.
Pourquoi le partitionnement a-t-il rallongé la durée d'exécution de mes tests ?
La segmentation peut entraîner une durée d'exécution plus longue de vos tests lorsque le nombre de segments que vous avez spécifié dépasse le nombre d'appareils disponibles pour une utilisation dans Test Lab. Pour éviter cette situation, essayez de passer à un autre appareil. Pour en savoir plus sur le choix d'un autre appareil, consultez
Capacité de l'appareil.
Pourquoi mon test met-il autant de temps à démarrer ?
Lorsque vous envoyez une demande de test, votre application est d'abord validée, signée à nouveau, etc., en vue de l'exécution des tests sur un appareil. Normalement, ce processus prend moins de quelques secondes, mais il peut être affecté par des facteurs tels que la taille de votre application.
Une fois votre application préparée, les exécutions de tests sont planifiées et restent dans une file d'attente jusqu'à ce qu'un appareil soit prêt à les exécuter. Tant que toutes les exécutions de test ne sont pas terminées, l'état de la matrice est "En attente" (que les exécutions de test soient dans la file d'attente ou en cours d'exécution).
Pourquoi mon test prend-il autant de temps ?
Une fois l'exécution du test terminée, les artefacts de test sont téléchargés depuis l'appareil, traités et importés dans Cloud Storage. La durée de cette étape peut dépendre du nombre et de la taille des artefacts.
L'application ne renvoie pas de données et je ne trouve pas les captures d'écran
Les artefacts d'exécution des tests (tels que les captures d'écran et les fichiers journaux) sont stockés dans Google Cloud Storage et affichés directement dans la console Firebase. Si votre exécution de test a été effectuée au cours des 90 derniers jours, vérifiez que vous avez attribué des rôles au niveau du projet (propriétaire, éditeur ou lecteur de projet).
Veuillez également vous assurer que Cloud Audit Logging n'est pas activé pour votre projet ni votre organisation.
Si l'exécution a eu lieu il y a plus de 90 jours, il est fort probable que les artefacts de test aient été automatiquement supprimés. Pour vérifier la configuration du bucket de résultats, cliquez sur l'onglet Résultats du test dans le tableau de bord Test Lab. Le bucket de résultats par défaut est configuré pour conserver les objets pendant 90 jours.
Pour conserver vos artefacts de test plus longtemps, exécutez la commande gcloud firebase test android run avec l'indicateur --results-bucket et transmettez le nom du bucket de résultats. Pour en savoir plus, consultez la documentation de référence de gcloud firebase test android run.
Pourquoi les résultats des scénarios de test d'instrumentation sont-ils partiels ou manquants ?
Lorsque vous exécutez des tests d'instrumentation, vous pouvez voir des erreurs de test indiquant des résultats partiels contenant des messages tels que Test run failed to complete. Expected
x tests, received y (où y est inférieur à x). Cette erreur signifie que Test Lab n'a pas pu analyser le logcat pour les marqueurs de début ou de fin de cas de test qui sont généralement générés par AndroidJUnitRunner.
Voici quelques causes courantes de ce problème :
Description du problème
Solution possible
Le scénario de test n'a pas été exécuté en raison d'un délai d'attente dépassé. Si la durée totale des tests est supérieure à un délai d'expiration que vous avez spécifié ou à un délai d'expiration maximal, Test Lab annule le reste des cas de test.
Augmentez le délai d'attente de la matrice pour vous assurer que tous les tests peuvent être effectués.
Si vous ne l'avez pas déjà fait, segmentez les tests afin que chaque segment exécute un sous-ensemble de tests et se termine plus rapidement.
Si vous avez déjà activé le partitionnement, augmentez le nombre de partitions.
Le scénario de test n'a pas pu être exécuté, car il s'est arrêté prématurément ou est resté bloqué.
Le cas de test peut se fermer prématurément en raison d'une exception non interceptée ou d'une erreur d'assertion. Les scénarios de test peuvent se retrouver bloqués dans une boucle infinie ou ne pas pouvoir se poursuivre, par exemple si l'application n'affiche pas la vue correcte et que le scénario de test ne peut pas effectuer l'action sur l'UI.
Consultez la vidéo et le logcat pour déterminer où le test s'est arrêté.
Un lanceur de test personnalisé (y compris l'extension d'AndroidJUnitRunner) a planté de manière inattendue ou a écrit des marqueurs de début ou de fin de scénario de test inattendus dans logcat.
Vérifiez le code de votre programme de test.
Un nombre excessif de journaux a été écrit dans logcat, ce qui a surchargé le tampon ou provoqué le plantage du processus logcat.
Réduisez les écritures à logcat.
L'application testée a planté.
Déboguez votre application.
Questions fréquentes
Quels sont les quotas sans frais pour Test Lab ? Que dois-je faire si je n'en ai plus ?
Firebase Test Lab propose des quotas sans frais pour les tests sur les appareils et pour l'utilisation des API Cloud. Notez que le quota de test utilise le forfait Firebase standard, contrairement aux quotas de l'API Cloud.
Quota de test
Les quotas de test sont déterminés par le nombre d'appareils utilisés pour exécuter les tests.
Le forfait Firebase Spark inclut un quota de tests fixe sans frais pour les utilisateurs. Pour la formule Blaze, vos quotas peuvent augmenter si votre utilisation de Google Cloud s'accroît au fil du temps. Si vous atteignez votre quota de tests, attendez le lendemain ou passez à la formule Blaze si vous utilisez actuellement la formule Spark.
Si vous disposez déjà du forfait Blaze, vous pouvez demander une augmentation de quota.
Pour en savoir plus, consultez Quota de test.
Vous pouvez surveiller votre utilisation du quota de test dans la console Google Cloud.
Quotas de l'API Cloud Testing
L'API Cloud Testing est soumise à deux limites de quota : le nombre de requêtes par jour et le nombre de requêtes toutes les 100 secondes, par projet. Vous pouvez surveiller votre utilisation dans la console Google Cloud.
Quota de l'API Cloud Tool Results
L'API Cloud Tool Results est soumise à deux limites de quota : les requêtes par jour et les requêtes toutes les 100 secondes, toutes deux par projet. Vous pouvez surveiller votre utilisation dans la console Google Cloud.
Envoyez une demande d'augmentation de vos quotas en modifiant vos quotas directement dans la console Google Cloud (notez que la plupart des limites sont définies sur le maximum par défaut), ou
Demandez des quotas d'API plus élevés en remplissant un formulaire de demande dans la console Google Cloud ou en contactant l'assistance Firebase.
Comment savoir si le trafic qui atteint mon backend provient de Test Lab ?
Depuis votre backend, vous pouvez déterminer si le trafic provient d'appareils de test hébergés sur Firebase en vérifiant l'adresse IP source par rapport à nos plages d'adresses IP.
Test Lab est-il compatible avec VPC-SC ?
Test Lab ne fonctionne pas avec VPC-SC, qui bloque la copie d'applications et d'autres artefacts de test entre le stockage interne de Test Lab et les buckets de résultats des utilisateurs.
Comment détecter les tests instables dans Test Lab ?
Pour détecter les comportements instables dans vos tests, nous vous recommandons d'utiliser l'option
--num-flaky-test-attempts
. Les réexécutions de tests pour éliminer les faux échecs sont facturées ou comptabilisées dans votre quota quotidien de la même manière que les exécutions de tests normales.
Tenez bien compte des éléments suivants :
L'intégralité de l'exécution du test est relancée lorsqu'un échec est détecté. Il n'est pas possible de réessayer uniquement les cas de test ayant échoué.
Les exécutions de nouvelle tentative de défloconnage sont programmées pour s'exécuter en même temps, mais ne sont pas garanties de s'exécuter en parallèle, par exemple lorsque le trafic dépasse le nombre d'appareils disponibles.
Test Lab est-il compatible avec les wearables ?
Oui. Test Lab est compatible avec la Google Pixel Watch. Vous pouvez désormais exécuter des tests sur votre appli Wear autonome sur les Google Pixel Watch. Pour en savoir plus sur les appareils Test Lab, consultez Tester sur les appareils disponibles.
Test Lab est-il compatible avec les derniers appareils Google ?
Oui. Test Lab est compatible avec la Google Pixel Tablet et le Google Pixel Fold. Vous pouvez exécuter vos tests sur vos appareils physiques autonomes.
Pour en savoir plus sur les appareils Test Lab, consultez Tester sur les appareils disponibles.
Comment détecter un test en cours d'exécution dans Test Lab ?
Si vous testez votre application dans Firebase ou si vous exécutez des tests pour un rapport pré-lancement dans la Play Console, vous pouvez détecter si un test est en cours d'exécution sur un appareil hébergé par Firebase en recherchant la propriété système firebase.test.lab dans votre fichier MainActivity. Vous pouvez ensuite exécuter des instructions supplémentaires en fonction de la valeur booléenne de testLabSetting. Pour en savoir plus, consultez Comportements de test modifiés.
Test Lab est-il compatible avec Appium, Flutter/FlutterDriver, ReactNative/Jest ou Cucumber ?
Bien que certains de ces éléments figurent dans notre feuille de route, nous ne sommes actuellement pas en mesure de nous engager à prendre en charge ces plates-formes de test et de développement d'applications. Toutefois, si vous avez créé votre application avec un framework compatible avec Espresso (par exemple, Flutter), vous pouvez écrire un test d'instrumentation à l'aide d'Espresso, puis exécuter le test dans Test Lab.
Test Lab est-il compatible avec le test d'applications obscurcies, par exemple avec ProGuard ou R8 ?
Test Lab n'est pas explicitement compatible avec l'obscurcissement ou le désobscurcissement. Bien que l'application s'exécute probablement, toutes les données d'application obscurcies, comme les traces de pile, apparaîtront comme obscurcies dans les journaux.
Puis-je utiliser mon appareil pliable dans différents états et positions pliables lors des tests sur Test Lab ?
Les appareils pliables ont différents états, comme FLAT (entièrement ouvert) ou HALF_OPENED (entre complètement ouvert et complètement fermé).
Les postures, quant à elles, se composent d'une orientation spécifique de l'appareil et d'un état pliable. Par exemple, la position à plat, qui est un état HALF_OPENED en orientation horizontale, ou la position debout, qui est un état HALF_OPENED en orientation verticale.
Puis-je essayer Test Lab si je n'ai pas d'application ?
Contrairement à d'autres produits Firebase, vous n'avez pas besoin d'ajouter de SDK Firebase pour utiliser Test Lab. Si vous n'avez pas encore d'application, vous pouvez télécharger un fichier APK en ligne ou créer une application et un fichier APK de test à partir de l'un des exemples du dépôt GitHub AndroidX.
Notez que vous n'avez besoin que du fichier APK de votre application pour exécuter un test Robo, tandis qu'un test d'instrumentation nécessite à la fois une application et un APK de test créés à partir du code source. Pour en savoir plus, consultez Tests instrumentés.
Quels sont les meilleurs appareils pour les tests de comparaison de captures d'écran ?
Les tests de comparaison de captures d'écran sont des assertions de test basées sur la comparaison d'images d'écran obtenues lors de l'exécution d'un test à des images de référence représentant le comportement attendu. Ces tests peuvent être plus fragiles sur certains types d'appareils que sur d'autres. Nous vous recommandons de cibler les appareils émulateurs Arm (*.arm) pour ces types de tests. Les appareils émulateurs Arm utilisent des images très similaires ou identiques aux émulateurs "génériques" d'Android Studio.
Nous vous recommandons également d'examiner les bibliothèques de test qui peuvent vous aider à rendre les tests de capture d'écran plus robustes en cas de modifications attendues.
Test Lab met-il à jour les appareils virtuels ?
Oui. Les appareils virtuels sont mis à jour lorsque les modifications suivantes sont apportées :
Mises à jour des images existantes
Abandon des niveaux d'API antérieurs
Ajout de nouveaux niveaux d'API Android
Comment activer les rapports sur la couverture ?
Pour activer les rapports de couverture, ajoutez coverage=true au champ environmentVariables.
Si vous utilisez Android Test Orchestrator, vous devez fournir un répertoire pour stocker les résultats de la couverture :
Où puis-je trouver des informations sur l'appareil, comme la résolution, les ABI compatibles, etc.?
Des informations détaillées sur l'appareil sont disponibles via l'API et sont accessibles depuis le client gcloud à l'aide de la commande describe :
gcloud firebase test android models describe MODEL
Problèmes connus
Captchas de connexion
Le test Robo ne peut pas contourner les écrans de connexion qui nécessitent une action utilisateur supplémentaire au-delà de la saisie des identifiants pour se connecter, par exemple, remplir un CAPTCHA.
Compatibilité avec les frameworks d'UI
Les tests Robo fonctionnent mieux avec les applications qui utilisent des éléments d'UI du framework d'UI Android (y compris les objets View, ViewGroup et WebView). Si vous utilisez le test Robo pour exercer des applications qui utilisent d'autres frameworks d'UI, y compris des applications qui utilisent le moteur de jeu Unity, le test peut se terminer sans explorer au-delà du premier écran.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/28 (UTC).
[null,null,["Dernière mise à jour le 2025/07/28 (UTC)."],[],[]]