Dépannage et questions fréquentes concernant Test Lab
Cette page fournit une aide pour le 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 la chaîne #test-lab sur Firebase Slack ou contactez l'assistance Firebase.
Dépannage
Pourquoi l'exécution de mon test prend-elle autant de temps ?
Lorsque vous sélectionnez un appareil avec un niveau de capacité élevé dans le catalogue Test Lab, les tests peuvent démarrer plus rapidement. Lorsque la capacité d'un appareil est faible, l'exécution des tests peut prendre plus de temps. Si le nombre de tests appelés est beaucoup plus important que la capacité des appareils sélectionnés, leur exécution peut prendre plus de temps.
Les tests exécutés à n'importe quel niveau de capacité de l'appareil peuvent prendre plus de temps en raison des facteurs suivants :
Le trafic, qui affecte la disponibilité des appareils et la vitesse des tests
Des pannes d'appareil ou d'infrastructure, qui peuvent se produire à tout moment. Pour vérifier si une infrastructure est signalée pour Test Lab, consultez le tableau de bord d'état Firebase.
Pour en savoir plus sur la capacité de l'appareil dans Test Lab, consultez des informations sur la capacité de l'appareil pour Android et iOS.
Pourquoi les résultats des tests sont-ils non concluants ?
Les résultats de test non concluants se produisent généralement en raison d'exécutions de test annulées ou d'erreurs d'infrastructure.
Les erreurs d'infrastructure sont causées par des problèmes internes Test Lab, tels que des erreurs réseau ou des comportements inattendus de l'appareil. Test Lab supprime en interne les exécutions de test qui génèrent des erreurs d'infrastructure plusieurs fois avant de signaler un résultat non concluant. Vous pouvez toutefois désactiver ces tentatives à l'aide de la méthode 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.
Essayez d'exécuter le test sur un autre appareil ou un autre type d'appareil, le cas échéant.
Si le problème persiste, contactez l'équipe Test Lab sur le canal #test-lab de Firebase Slack.
Pourquoi le fractionnement a-t-il ralenti l'exécution de mes tests ?
La segmentation peut prolonger l'exécution de vos tests lorsque le nombre de segments que vous avez spécifié dépasse le nombre d'appareils disponibles dans Test Lab. Pour éviter cette situation, essayez d'utiliser un autre appareil. Pour en savoir plus sur le choix d'un autre appareil, consultez la section
Capacité de l'appareil.
Pourquoi le démarrage de mon test prend-il autant de temps ?
Lorsque vous envoyez une requête de test, votre application est d'abord validée, signée à nouveau, etc. en vue de l'exécution de tests sur un appareil. Normalement, ce processus se termine en 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 test 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 à se terminer ?
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 être affectée par la quantité et la taille des artefacts.
L'application ne renvoie pas de données et ne parvient pas à localiser 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 l'exécution de votre 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).
Assurez-vous également que Cloud Audit Logging n'est pas activé pour votre projet ou votre organisation.
Si l'exécution a été effectuée 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'option --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, des erreurs de test peuvent s'afficher, 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 repères de début ou de fin du cas de test, qui sont généralement générés par AndroidJUnitRunner.
Voici les 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 avant expiration. 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 scénarios de test.
Augmentez le délai avant expiration 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 des tests et se termine plus rapidement.
Si vous avez déjà activé la segmentation, augmentez le nombre de segments.
Le scénario de test n'a pas abouti, car il s'est arrêté prématurément ou s'est bloqué.
Le cas de test peut se terminer prématurément en raison d'une exception non interceptée ou d'une erreur d'assertion. Les scénarios de test peuvent rester bloqués dans une boucle infinie ou ne pas pouvoir continuer, par exemple si l'application n'affiche pas la bonne vue et que le scénario de test ne peut pas effectuer l'action sur l'interface utilisateur.
Vérifiez la vidéo et le logcat pour déterminer à quel moment 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 repères de début ou de fin de scénario de test inattendus dans logcat.
Vérifiez le code de votre outil d'exécution de test.
Des journaux excessifs ont été écrits dans logcat, ce qui a saturé le tampon ou a planté le processus logcat.
Réduire les écritures à logcat.
L'application testée a planté.
Déboguer votre application
Questions fréquentes
Quels sont les quotas sans frais pour Test Lab ? Que dois-je faire si je n'ai plus de données ?
Firebase Test Lab propose des quotas sans frais pour les tests sur les appareils et l'utilisation des API Cloud. Notez que le quota de test utilise le forfait tarifaire Firebase standard, contrairement aux quotas de l'API Cloud.
Quota de tests
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 le forfait Blaze, vos quotas peuvent augmenter si votre utilisation de Google Cloud augmente au fil du temps. Si vous atteignez votre quota de tests, attendez le jour suivant ou passez à la formule Blaze si vous utilisez actuellement la formule Spark.
Si vous utilisez déjà le forfait Blaze, vous pouvez demander une augmentation de quota.
Pour en savoir plus, consultez la section 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 présente deux limites de quota: le nombre de requêtes par jour et par projet, et le nombre de requêtes effectuées 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 associée à deux limites de quota : les requêtes par jour et par projet, et les requêtes toutes les 100 secondes par projet. Vous pouvez surveiller votre utilisation dans la console Google Cloud.
Envoyez une demande de quotas plus élevés en modifiant vos quotas directement dans la console Google Cloud (notez que la plupart des limites sont définies sur la valeur maximale par défaut).
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 ?
À partir de votre backend, vous pouvez déterminer si le trafic provient d'appareils de test hébergés par Firebase en comparant l'adresse IP source à 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 la mémoire de 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 un comportement instable dans vos tests, nous vous recommandons d'utiliser l'option
--num-flaky-test-attempts
. Les rediffusions de déflake sont facturées ou comptabilisées dans votre quota journalier de la même manière que les exécutions de test normales.
Tenez bien compte des éléments suivants :
L'ensemble de l'exécution du test est de nouveau exécuté lorsqu'un échec est détecté. Il n'est pas possible de ne relancer que les cas de test ayant échoué.
Les tentatives de déflaquage sont planifiées pour s'exécuter en même temps, mais leur exécution en parallèle n'est pas garantie, par exemple lorsque le trafic dépasse le nombre d'appareils disponibles.
Test Lab est-il compatible avec les accessoires connectés ?
Oui ! Test Lab est compatible avec la Google Pixel Watch. Vous pouvez désormais exécuter des tests sur votre application 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 exécutez des tests pour un rapport pré-lancement dans la Play Console, vous pouvez détecter si un test est exécuté 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 la section Comportements de test modifiés.
Test Lab est-il compatible avec Appium, Flutter/FlutterDriver, ReactNative/Jest ou Concumber ?
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 compilé 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 permet-il de tester des applications obscurcies, par exemple avec ProGuard ou R8 ?
Test Lab n'est pas explicitement compatible avec l'obscurcissement ni le démasquage. Bien que l'application s'exécute probablement, toutes les données d'application masquées, telles que les traces de pile, apparaîtront comme masquées dans les journaux.
Puis-je utiliser mon appareil pliable dans différents états et positions de pliage lors des tests sur Test Lab ?
Oui ! Vous pouvez tester votre appareil pliable dans différents états et positions.
Les appareils pliables peuvent avoir différents états, par exemple : FLAT (entièrement ouvert) ou HALF_OPENED (entre complètement ouvert et complètement fermé).
Les positions, en revanche, correspondent à l'orientation et à l'état pliable spécifiques de l'appareil. Par exemple, la position à plat, qui correspond à un état HALF_OPENED en orientation horizontale, ou la position debout, qui correspond à un état HALF_OPENED en orientation verticale.
Puis-je tester Test Lab si je n'ai pas d'application ?
Contrairement aux 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 APK en ligne ou créer une application et un 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 compilés à partir du code source. Pour en savoir plus, consultez la section Tests instrumentés.
Quels sont les appareils les mieux adaptés pour tester les différences entre les captures d'écran ?
Dans les tests de différences de captures d'écran, les assertions de test sont basées sur la comparaison d'images d'écran obtenues lors de l'exécution d'un test à des images dorées 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 des appareils d'émulateur Arm (*.arm) pour ce type de tests. Les appareils d'émulateur ARM utilisent des images très semblables ou identiques aux émulateurs "génériques" d'Android Studio.
Nous vous recommandons également d'examiner les bibliothèques de tests qui peuvent vous aider à rendre les tests de captures 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 anciens niveaux d'API
De nouveaux niveaux d'API Android sont ajoutés
Comment activer les rapports de couverture ?
Pour activer les rapports sur la 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 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 peuvent être consultées à partir du client gcloud à l'aide de la commande describe :
gcloud firebase test android models describe MODEL
Problèmes connus
Captchas de connexion
Le test robot ne peut pas contourner les écrans de connexion qui nécessitent une action utilisateur supplémentaire en plus de la saisie des identifiants pour se connecter, par exemple, en remplissant un CAPTCHA.
Compatibilité avec les frameworks d'UI
Le test Robo fonctionne mieux avec les applications qui utilisent des éléments d'interface utilisateur du framework d'interface utilisateur Android (y compris les objets View, ViewGroup et WebView). Si vous utilisez le test Robo pour tester 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 2024/11/08 (UTC).
[null,null,["Dernière mise à jour le 2024/11/08 (UTC)."],[],[]]