8

Szukam sposobu na "dostarczenie loginu" do mojej aplikacji, aby automatyczny test "był zalogowany" i mógł przetestować całą aplikację. Obecnie jest oczywiście zablokowany przez ekran logowania.Jak podać dane logowania do automatycznego testu Androida?

Ponieważ używam SmartLock do haseł, może to być okazja do podania niektórych danych uwierzytelniających do testu - ale nie wiem jak.


Czy istnieje jakaś sprawdzona metoda dostarczania poświadczeń do/pomijania loginu podczas testu? Mógłbym wymyślić specjalny buildType /-flavour, który kpi z loginu, ale w ten sposób nie może być użyty do testowania kompilacji wydania.

Byłoby wspaniale, gdybym mógł przetestować wersję ostateczną, którą można przesłać do sklepu, gdy test się powiedzie. W ten sposób mogę wykorzystać wbudowane raporty przed opublikowaniem w PlayStore (co byłoby naprawdę miłe).

+2

Czy mówisz o teście Robo lub zwykłym teście na instrumentację? –

+0

Tak. Myślę, że to właśnie działa jako raport przed wprowadzeniem na rynek. Ale to jest ogólne pytanie - jak mogę "pominąć" logowanie podczas testowania bez używania innego smaku itp. – hardysim

Odpowiedz

10

idź do Firebase Console-> test LAb-> wybrać wymiary, a następnie kliknij

Opcje

Pokaż zaawansowane

i szukać

poświadczeń konta testowego (opcjonalne)

Następnie wypełnij w następujący sposób:

Enter username resource: nazwę swoją nazwę użytkownika (adres e-mail) źródło EditText, omijając R.id udział, więc dla R.id.edit_text_email wejścia edit_text_email

Enter password resource: jak wyżej, ale o hasło. Ponownie, pomiń R.id, np. edit_text_password

Enter username: nazwa użytkownika lub adres e-mail, którego chcesz użyć do testowania, np.[email protected]

Enter password: hasło byłoby użyć do testowania, np testTEST123


Wydaje Robo (bot test) w rodzaju poświadczeń jak tylko znajdzie EditTexts określone ze środków identyfikacyjnych , ale może trochę potrwać, zastanawiając się, który przycisk kliknąć, aby się zalogować, jeśli masz inne opcje autoryzacji, takie jak "Zaloguj się przez Google" i "Kontynuuj z Facebookiem". Po kilku minutach prób w innych usługach wydaje się, że na szczęście naciskasz prawy przycisk, aby kontynuować uwierzytelnianie przy użyciu poświadczeń, które podasz.

W chwili pisania tego skryptu nie ma sposobu na zapisanie zachowania logowania i jako takie sugerują przyciski używane do uwierzytelniania, więc po prostu użyj powyższej metody i daj Robo wystarczająco dużo czasu na testowanie (Test timeout w Konsoli) w obuduj go bez klikania prawym przyciskiem na chwilę.

Jeśli podasz przycisk Sign in With Google, aby Robo użył swoich własnych danych logowania Google, pamiętaj, że to nie zadziała, jeśli podasz Test account credentials. To znaczy. aby móc używać Sign in with Google upewnij się, że nie podałeś żadnych innych danych logowania, w przeciwnym razie nie uda się.


Uwaga: Można zrobić Robo wypełnić w innych dziedzinach EditText stosując podobną metodę - sprawdź Test Lab documentation aby uzyskać więcej informacji.

+0

To świetnie :-) Nigdy o tym nie wiedziałem, ponieważ testcopy firebase nie były wolne w tych dniach. – hardysim

6

Dla testu Robo (który zasila raport przed opublikowaniem w Konsoli programisty Play Store), pomijanie logowania jest jednym ze znanych ograniczeń, o których można przeczytać na stronie bottom of the documentation. Istnieje jednak ostatnia możliwość Robo, która może automatycznie używać konta Google do logowania. Wszystkie urządzenia w Laboratorium testowym mają teraz powiązane konto Google, które będzie używane, gdy zalogowanie się wymaga zalogowania się na konto Google.

Jeśli chcesz przetestować aplikację, która zwykle wymaga innego rodzaju logowania, masz rację zgadując, że musisz podać alternatywny pakiet APK skonfigurowany tak, aby nie wymagał logowania. Nie jest to wygodne, szczególnie w przypadku aplikacji testowanych w wersji alfa/beta. Jedną rzeczą, którą można wypróbować, aby programowo zdecydować, czy wymagać logowania, może być skorzystanie ze specjalnej właściwości systemowej ("firebase.test.lab"), która zostanie ustawiona na urządzeniach Test Lab. Możesz przeczytać o tym here. Zwykle jest to używane w testach instrumentacyjnych, ale może również działać w testach Robo (nie próbowałem, i będę musiał to później potwierdzić w zespole).