Je cherche un moyen de "fournir une connexion" à mon application afin qu'un test automatisé "soit connecté" et puisse tester l'ensemble de l'application. Actuellement, il est bien sûr bloqué par l'écran de connexion.
Parce que j'utilise SmartLock pour les mots de passe, cela pourrait être l'occasion de fournir des informations d'identification pour le test - mais je ne sais pas comment.
Existe-t-il des meilleures pratiques pour fournir des informations d'identification pour/ignorer la connexion pendant un test? Je pourrais penser à un buildType/-flavor spécial qui se moque de la connexion, mais de cette façon, il ne peut pas être utilisé pour tester une version.
Ce serait génial quand je pourrais tester une version finale qui peut être téléchargée dans le magasin lorsque le test réussit. De cette façon, je pourrais également utiliser les rapports de pré-lancement intégrés dans le PlayStore (ce qui serait vraiment sympa).
Accédez à Firebase Console-> Test Lab-> Select Dimensions, puis cliquez sur
Afficher les options avancées
et chercher
Tester les informations d'identification du compte (facultatif)
Remplissez ensuite comme suit:
Enter username resource
: nom de votre nom d'utilisateur (e-mail) ressource EditText, en ignorant R.id
partie, donc pour R.id.edit_text_email
contribution edit_text_email
Enter password resource
: idem que ci-dessus, mais pour le mot de passe. Encore une fois, ignorez le R.id
, par exemple. edit_text_password
Enter username
: nom d'utilisateur ou e-mail que vous utiliseriez pour les tests, par exemple. [email protected]
Enter password
: mot de passe que vous utiliseriez pour les tests, par exemple testTEST123
Il semble que Robo (le bot de test) tape les informations d'identification dès qu'il trouve les EditTexts spécifiés avec les ressources d'ID, mais peut prendre un peu de temps à déterminer le bouton sur lequel cliquer pour se connecter si vous avez d'autres options d'authentification telles que `` Signer avec Google "et" Continuer avec Facebook ". Après quelques minutes de tentatives dans d'autres services, il semble que vous ayez heureusement appuyé sur le bouton droit pour continuer l'authentification en utilisant les informations d'identification que vous fournissez.
Au moment d'écrire ces lignes, il n'y a aucun moyen de scripter un comportement de connexion et en tant que tel, suggérer les boutons à utiliser pour l'authentification, alors utilisez simplement la méthode ci-dessus et donnez à Robo suffisamment de temps de test (Test timeout
dans la console) au cas où il resterait sans cliquer sur le bouton droit pendant un certain temps.
Si vous fournissez Sign in With Google
bouton permettant à Robo d'utiliser ses propres informations d'identification Google pour se connecter, n'oubliez pas que cela ne fonctionnera pas si vous fournissez Test account credentials
. C'est à dire. pour pouvoir utiliser Sign in with Google
assurez-vous que vous n'avez pas fourni d'autres informations d'identification, sinon cela échouera.
Remarque: Vous pouvez faire en sorte que Robo remplisse d'autres champs EditText en utilisant une méthode similaire - consultez la documentation du laboratoire de test pour plus d'informations.
Pour un test Robo (qui alimente le rapport de pré-lancement sur la Play Store Developer Console), le contournement de la connexion est l'une des limitations connues, que vous pouvez lire sur le en bas de la documentation . Cependant, il existe une capacité récente de Robo qui peut automatiquement utiliser un compte Google pour se connecter. Tous les appareils de Test Lab sont désormais associés à un compte Google qui sera utilisé chaque fois qu'un compte Google est nécessaire pour se connecter.
Si vous souhaitez tester une application qui nécessite normalement un autre type de connexion, vous avez raison de penser que vous devrez fournir un autre fichier APK configuré pour ne pas nécessiter de connexion. Ce n'est pas très pratique de le faire, en particulier pour les applications testées en alpha/bêta. Une chose que vous pourriez essayer, afin de décider par programme si vous devez ou non vous connecter, pourrait être de consulter une propriété système spéciale ("firebase.test.lab") qui sera définie sur les appareils Test Lab. Vous pouvez en lire plus ici . Cela est normalement utilisé dans les tests d'instrumentation, mais cela peut également fonctionner pour les tests Robo (je n'ai pas essayé, et je devrai le confirmer avec l'équipe plus tard).