Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

Zacznij od testów Robo

Robo test to narzędzie testowe zintegrowane z Firebase Test Lab. Test Robo analizuje strukturę interfejsu użytkownika aplikacji, a następnie bada ją metodycznie, automatycznie symulując działania użytkowników. W przeciwieństwie do testu UI/Application Exerciser Monkey, test Robo zawsze symuluje te same działania użytkownika w tej samej kolejności, gdy używasz go do testowania aplikacji na określonej konfiguracji urządzenia z tymi samymi ustawieniami. Dzięki temu możesz używać testu Robo do sprawdzania poprawek błędów i testowania regresji w sposób, który nie jest możliwy podczas testowania za pomocą testu małpy UI/Application Exerciser .

Test Robo przechwytuje pliki dziennika, zapisuje serię zrzutów ekranu z adnotacjami, a następnie tworzy wideo z tych zrzutów ekranu, aby pokazać symulowane operacje użytkownika, które wykonał. Te dzienniki, zrzuty ekranu i filmy mogą pomóc w ustaleniu głównej przyczyny awarii aplikacji, a także w znalezieniu problemów z interfejsem aplikacji.

Statystyki indeksowania testowego robota

Aby pomóc Ci zinterpretować wyniki testu Robo, Robo rejestruje statystyki podczas każdego indeksowania testowego. Laboratorium testowe wyświetla statystyki u góry zakładki Robo na stronie wyników testu:

  • Akcje: łączna liczba akcji wykonanych podczas indeksowania, w tym akcji skryptu Robo, akcji małp i dyrektyw Robo.
  • Czynności: liczba odrębnych czynności uwzględnionych podczas przeszukiwania.
  • Ekrany: liczba różnych ekranów odwiedzonych podczas indeksowania.

Laboratorium testowe wykorzystuje również statystyki do stworzenia wizualnej reprezentacji indeksowania Robo w postaci wykresu indeksowania. Wykres ma ekrany jako węzły i akcje jako krawędzie. Podążając za krawędziami między ekranami, możesz zorientować się, jak Robo przemierza Twoją aplikację podczas indeksowania.

Limit czasu testu robota

W zależności od złożoności interfejsu użytkownika aplikacji test Robo może potrwać pięć minut lub dłużej, aby ukończyć dokładny zestaw interakcji interfejsu użytkownika. Zalecamy ustawienie limitu czasu testu na co najmniej 120 sekund (2 minuty) dla większości aplikacji i 300 sekund (5 minut) dla umiarkowanie złożonych aplikacji. Domyślna wartość limitu czasu to 300 sekund (5 minut) dla testów uruchamianych z Android Studio i Google Developer Console oraz 1500 sekund (25 minut) dla testów uruchamianych z gcloud poleceń gcloud .

Błędy limitu czasu uruchamiania aplikacji

Jeśli uruchomienie Twojej aplikacji zajmuje dużo czasu, Robo może zgłosić błąd i nie będzie w stanie zindeksować Twojej aplikacji. Dzieje się tak tylko w przypadku bardzo długiego czasu uruchamiania i można go rozwiązać tylko poprzez zmodyfikowanie aplikacji, aby przyspieszyć jej uruchamianie.

Większa kontrola dzięki skryptom Robo

Czasami potrzebujesz większej kontroli nad testami. Na przykład możesz chcieć przetestować typową podróż użytkownika lub podać określone dane wejściowe interfejsu użytkownika, takie jak nazwa użytkownika i hasło. Skrypty Robo mogą pomóc.

Dzięki skryptom Robo rejestrujesz, jak przechodzisz przez przepływ pracy w swojej aplikacji, a następnie przesyłasz to nagranie do konsoli Firebase, aby uruchomić je w testach Robo. Gdy uruchamiasz test Robo z dołączonym skryptem, Robo najpierw wykonuje czynności, które zostały wcześniej zaprogramowane, a następnie przechodzi do eksploracji aplikacji w zwykły sposób.

Zacznij korzystać ze skryptów Robo za pomocą narzędzia Firebase w Android Studio:

  1. Otwórz Android Studio.
  2. W menu głównym wybierz Narzędzia > Firebase .
  3. Wybierz Test Lab i kliknij Record Robo Script i użyj go do prowadzenia Robo Test .
  4. Wykonaj pozostałe kroki w narzędziu, aby nagrać swój Robo Script.
  5. Prześlij ten skrypt Robo do laboratorium testowego i rozpocznij test.

Błędy skryptu Robo

Jeśli skrypt Robo ulegnie awarii w dowolnym momencie, laboratorium testowe porzuci wszystkie dalsze kroki w skrypcie i wznawia normalne indeksowanie Robo. Najczęściej skrypty Robo zawodzą, ponieważ Test Lab nie jest w stanie znaleźć potrzebnego elementu na ekranie. Aby uniknąć awarii, upewnij się, że nawigacja w aplikacji jest przewidywalna, a ekrany nie są wyświetlane w jakiejś niedeterministycznej kolejności.

Testy Robo i widżety interfejsu użytkownika innego niż Android

Testy Robo używają interfejsu API systemu Android do bezpośredniego wykonywania działań na widżetach interfejsu użytkownika systemu Android. Pomaga to testom automatycznie eksplorować interfejs użytkownika, ale oznacza również, że muszą być w stanie wyodrębnić hierarchię interfejsu użytkownika systemu Android dla ekranu, aby uruchomić na nim testy.

Jeśli ekran w Twojej aplikacji nie używa widżetów interfejsu użytkownika Androida, testy Robo opierają się na działaniach małpy, aby przetestować ten ekran. W przeciwieństwie do bardziej metodycznych akcji Robo, Monkey Actions po prostu symulują zdarzenia dotknięcia w półlosowych lokalizacjach na ekranie urządzenia.

Aby lepiej testować ekrany, które nie korzystają z widżetów interfejsu użytkownika Androida, możesz zastąpić dowolne stuknięcia w akcji małpy zestawem stuknięć i interakcji ze skryptem w ramach testów pętli w grze Firebase Test Lab .

Integracja z Google Play

Możesz użyć Robo test w Konsoli Google Play, gdy przesyłasz i publikujesz plik APK swojej aplikacji za pomocą kanału alfa lub beta. Test Robo działa na zestawie popularnych urządzeń fizycznych z różnych lokalizacji geograficznych, zapewniając pokrycie testowe w różnych formach i konfiguracjach sprzętowych. Aby dowiedzieć się więcej, zobacz Używanie raportów przed opublikowaniem do identyfikowania problemów .

Testuj logowanie na konto i predefiniowane wprowadzanie tekstu

Test Robo obsługuje logowanie na konto testowe, a także umożliwia wprowadzanie wstępnie zdefiniowanego tekstu w polach w aplikacji. W przypadku niestandardowego logowania i innych predefiniowanych danych wejściowych, Robo test może wprowadzić tekst w polach EditText w Twojej aplikacji. Dla każdego ciągu musisz zidentyfikować pole EditText przy użyciu nazwy zasobu systemu Android. Aby dowiedzieć się więcej, zobacz Uzyskiwanie dostępu do zasobów .

Zaloguj się

Test Robo ma dwie wzajemnie wykluczające się metody obsługi logowania:

  • Logowanie niestandardowe: Jeśli podasz poświadczenia konta testowego, musisz powiedzieć Robo test, gdzie je wprowadzić, a także podać te poświadczenia.
  • Automatyczne logowanie: jeśli Twoja aplikacja ma ekran logowania, który używa konta Google do uwierzytelniania, Robo test używa konta testowego Google, chyba że podasz dane logowania do konta testowego do niestandardowego logowania.

Aby podać poświadczenia konta testowego do logowania niestandardowego, wykonaj następujące czynności:

  1. Na stronie Wybierz wymiary wybierz Opcje dodatkowe .
  2. W obszarze Poświadczenia konta testowego (opcjonalne) wprowadź nazwę użytkownika i hasło zasobu oraz nazwę użytkownika i hasło do konta testowego.

Wstępnie zdefiniowane wprowadzanie tekstu

Możesz podać własny tekst wejściowy dla innych pól tekstowych używanych przez Twoją aplikację. Aby wprowadzić tekst w dodatkowych polach, wykonaj następujące czynności:

  1. Na stronie Wybierz wymiary wybierz Opcje dodatkowe .
  2. W obszarze Dodatkowe pola (opcjonalne) wprowadź co najmniej jedną nazwę zasobu oraz ciągi do wprowadzenia w odpowiednich polach tekstowych.

Wstępnie zdefiniowane błędy wprowadzania tekstu

Robo wyszukuje pola EditText z nazwą zasobu systemu Android, która odpowiada podanemu wyrażeniu regularnemu. Jeśli Robo nie może znaleźć pasującego pola, nie wprowadza tekstu, ale w przeciwnym razie kontynuuje przeszukiwanie jak zwykle.

Do testowania możesz podać maksymalnie trzy precyzyjne linki obsługiwane przez Twoją aplikację. ACTION_VIEW linki są wysyłane do Twojej aplikacji jako intencje ACTION_VIEW Androida. Dlatego każdy link musi odpowiadać filtrowi intencji w Twojej aplikacji.

Jeśli podano co najmniej jeden ACTION_MAIN link, aplikacja jest najpierw uruchamiana normalnie (przy użyciu intencji ACTION_MAIN ) i indeksowana do określonego czasu. Po głównym indeksowaniu każdy precyzyjny link jest indeksowany przez dodatkowe 30 sekund.

Jeśli Robo nie może znaleźć aktywności pasującej do Twojego precyzyjnego linku, Laboratorium testowe zignoruje ten link. Problemy z precyzyjnymi linkami są zwykle wynikiem rozbieżności między podanym precyzyjnym linkiem a jego definicją w Twojej aplikacji. Sprawdź zarówno podany adres URL, jak i aplikację pod kątem literówek lub innych niespójności.

Wsparcie licencjonowania aplikacji

Test Lab obsługuje aplikacje korzystające z usługi licencjonowania aplikacji oferowanej przez Google Play. Aby pomyślnie sprawdzić licencjonowanie podczas testowania aplikacji w Test Lab, musisz opublikować swoją aplikację w kanale produkcyjnym w Sklepie Play. Aby przetestować swoją aplikację w kanale alfa lub beta za pomocą laboratorium testowego, usuń sprawdzanie licencji przed przesłaniem aplikacji do laboratorium testowego.

Znane problemy

Test Robo ma obecnie następujące znane ograniczenia:

  • Obsługa ram interfejsu użytkownika . Test Robo jest zgodny tylko z aplikacjami, które używają elementów interfejsu użytkownika z platformy Android UI (w tym obiektów View i ViewGroup , ale z wyłączeniem obiektów WebView ). Jeśli używasz testu Robo do ćwiczenia aplikacji korzystających z innych struktur interfejsu użytkownika, w tym aplikacji korzystających z silnika gry Unity, test może zakończyć się bez eksploracji poza pierwszy ekran.
  • Captcha logowania . Test Robo nie może ominąć ekranów logowania, które wymagają dodatkowych działań użytkownika poza wprowadzeniem poświadczeń w celu zalogowania (takich jak wypełnienie Captcha).