Wie erhalten Sie Anmeldedaten für einen automatisierten Android-Test?

8

Ich bin auf der Suche nach einem Weg, um meiner App einen Login zu geben, damit ein automatisierter Test "eingeloggt" wird und die gesamte App testen kann. Gegenwärtig wird es natürlich vom Login-Bildschirm blockiert.

Da ich SmartLock für Passwörter verwende, könnte dies eine Möglichkeit sein, einige Anmeldeinformationen für den Test bereitzustellen - aber ich weiß nicht wie.

Gibt es Best Practices für die Bereitstellung von Anmeldeinformationen für die Anmeldung während eines Tests? Ich könnte mir einen speziellen buildType / -flavor vorstellen, der sich über den Login lustig macht, aber auf diese Weise kann er nicht zum Testen eines Release-Builds verwendet werden.

Es wäre großartig, wenn ich einen endgültigen Release-Build testen könnte, der in den Store hochgeladen werden kann, wenn der Test erfolgreich ist. Auf diese Weise könnte ich die eingebetteten Pre-Launch-Berichte auch im PlayStore verwenden (was wirklich nett wäre).

    
hardysim 08.07.2016, 07:12
quelle

2 Antworten

12

Gehen Sie zu Firebase Console -> Test Lab -> Wählen Sie Dimensionen und klicken Sie dann auf

Erweiterte Optionen anzeigen

und suchen Sie nach

Anmeldedaten für das Konto testen (optional)

Füllen Sie dann wie folgt aus:

Enter username resource : Name des Benutzernamens (E-Mail) EditText-Ressource, überspringt den R.id -Teil, also für R.id.edit_text_email input edit_text_email

Enter password resource : Wie oben, aber für das Passwort. Überspringen Sie erneut R.id , z. edit_text_password

Enter username : Benutzername oder E-Mail-Adresse, die Sie zum Testen verwenden würden, z. [email protected]

Enter password : Passwort, das Sie zum Testen verwenden würden, zB testTEST123

Robo (der Test-Bot) tippt die Zugangsdaten ein, sobald er die EditTexts gefunden hat, die mit den ID-Ressourcen angegeben wurden. Es kann jedoch eine Weile dauern, herauszufinden, welche Schaltfläche Sie anklicken müssen, wenn Sie andere Auth-Optionen haben als "Mit Google anmelden" und "Mit Facebook fortfahren". Nach ein paar Minuten Versuchen in anderen Diensten scheint es glücklicherweise die rechte Taste zu drücken, um die Authentifizierung mit den von Ihnen angegebenen Zugangsdaten fortzusetzen.

Zum Zeitpunkt des Schreibens gibt es keine Möglichkeit, ein Login-Verhalten zu skripten und so anzugeben, welche Schaltflächen für die Authentifizierung verwendet werden sollen. Verwenden Sie einfach die oben genannte Methode und geben Sie Robo genügend Testzeit ( Test timeout in der Konsole). für den Fall, dass es herumhängt, ohne den rechten Knopf für eine Weile zu drücken.

Wenn Sie Robo die Berechtigung Sign in With Google geben, um sich mit seinen eigenen Google-Anmeldeinformationen anzumelden, denken Sie daran, dass dies nicht funktioniert, wenn Sie Test account credentials angeben. Ie. Um Sign in with Google verwenden zu können, vergewissern Sie sich, dass Sie keine anderen Anmeldedaten angegeben haben. Andernfalls wird es fehlschlagen.

Hinweis: Sie können festlegen, dass Robo andere EditText-Felder mit einer ähnlichen Methode ausfüllt. Weitere Informationen finden Sie im Test Lab-Dokumentation für weitere Informationen.

    
Voy 26.02.2017, 13:00
quelle
6

Bei einem Robo-Test (der den Pre-Launch-Bericht in der Play Store Developer Console aktiviert) ist die Umgehung der Anmeldung eine der bekannten Einschränkungen, über die Sie im unterhalb der Dokumentation . Es gibt jedoch kürzlich eine Funktion von Robo, die automatisch ein Google-Konto für die Anmeldung verwenden kann. Auf allen Geräten im Testlabor ist jetzt ein Google-Konto verknüpft, das immer dann verwendet wird, wenn sich ein Google-Konto anmelden muss.

Wenn Sie eine App testen möchten, die normalerweise eine andere Art der Anmeldung erfordert, haben Sie richtig geraten, dass Sie ein alternatives APK bereitstellen müssen, das so konfiguriert ist, dass keine Anmeldung erforderlich ist. Dies ist insbesondere für Apps, die in Alpha / Beta getestet werden, nicht sehr praktisch. Eine Sache, die Sie ausprobieren könnten, um programmgesteuert zu entscheiden, ob Sie eine Anmeldung benötigen, ist die Abfrage einer speziellen Systemeigenschaft ("firebase.test.lab"), die auf Test Lab-Geräten eingestellt wird. Sie können hier nachlesen. Das wird normalerweise in Instrumentierungstests verwendet, aber es kann auch für Robo-Tests funktionieren (ich habe es nicht versucht, und ich werde das später mit dem Team bestätigen müssen).

    
Doug Stevenson 09.07.2016 16:45
quelle