Test Robo to narzędzie do testowania zintegrowane z Firebase Test Lab. Test automatyczny analizuje strukturę interfejsu użytkownika aplikacji, a następnie metodycznie i automatycznie bada go, symulując działania użytkownika. Test Robo zawsze symuluje te same działania użytkownika w tym samym porządku, gdy używasz go do testowania aplikacji na określonej konfiguracji urządzenia z tymi samymi ustawieniami. To powtarzalne podejście do testowania umożliwia korzystanie z testu Robo do sprawdzania poprawności naprawionych błędów i testowania regresji.
Test robota rejestruje pliki dziennika, zapisuje serię opatrzonych adnotacjami zrzutów ekranu, a następnie tworzy film z tych zrzutów, aby pokazać symulowane operacje użytkownika. Te dzienniki, zrzuty ekranu i filmy pomogą Ci ustalić główną przyczynę awarii aplikacji. Te funkcje testów automatycznych mogą też pomóc w znalezieniu problemów z interfejsem aplikacji.
Oprócz uruchamiania zwykłych testów Robo możesz dostosować testy za pomocą skryptów Robo, które są funkcją testów Robo. Więcej informacji znajdziesz w artykule uruchamianie skryptu Robo.
Jeśli chcesz wypróbować wersję beta Robo na iOS+, zapoznaj się z sekcją Przeprowadzanie testu Robo.
Statystyki indeksowania testu Robo
Aby ułatwić interpretowanie wyników testu Robo, test ten rejestruje statystyki podczas każdego indeksowania testowego. Test Lab wyświetla statystyki u góry karty Testowanie automatyczne na stronie wyników testu:
Działania: łączna liczba działań wykonanych podczas indeksowania, w tym działań skryptu Robo, działań skryptu Monkey i dyrektyw Robo.
Activities (Działania): liczba różnych działań objętych indeksowaniem.
Ekrany: liczba różnych ekranów odwiedzonych podczas indeksowania.
Test Lab wykorzystuje też statystyki do tworzenia wizualnego przedstawienia testu Robotest w postaci wykresu indeksowania. Węzły w tym grafu to ekrany, a krawędzie to działania. Śledzenie krawędzi między ekranami pozwala zobaczyć, jak test Robo poruszał się po aplikacji podczas indeksowania.
Czas oczekiwania testu Robo
W zależności od złożoności interfejsu aplikacji test Robo może potrwać ponad 5 minut, aby przetestować wszystkie interakcje z interfejsem. Zalecamy ustawienie limitu czasu testu na co najmniej 120 sekund (2 minuty) w przypadku większości aplikacji oraz 300 sekund (5 minut) w przypadku aplikacji o umiarkowanej złożoności. Domyślny limit czasu wynosi 300 sekund (5 minut) w przypadku testów uruchamianych z poziomu Android Studio i konsoli Firebase oraz 900 sekund (15 minut) w przypadku testów uruchamianych z poziomu wiersza poleceń gcloud
.
Błędy związane z czasem oczekiwania podczas uruchamiania aplikacji
Jeśli aplikacja uruchamia się bardzo długo, test Robo może wygenerować błąd i nie będzie mógł zindeksować aplikacji. Dzieje się tak tylko w przypadku bardzo długiego czasu uruchamiania. Aby rozwiązać ten problem, zmodyfikuj aplikację, aby szybciej się uruchamiała.
Większa kontrola dzięki skryptom Robo
Czasami potrzebujesz większej kontroli nad testami. Możesz na przykład przetestować typowy proces użytkownika lub podać określone dane wejściowe interfejsu, takie jak nazwa użytkownika i hasło. W tym mogą Ci pomóc skrypty Robo. Więcej informacji o skryptach Robo znajdziesz w artykule Przeprowadzanie skryptu Robo i przewodniku po skryptach Robo.
Testy Robo i widżety interfejsu użytkownika inne niż na Androida
Testy automatyczne korzystają z interfejsu API Androida, aby bezpośrednio wykonywać działania na widżetach interfejsu użytkownika Androida. Dzięki temu testy mogą automatycznie analizować interfejs użytkownika, ale oznacza to też, że muszą mieć możliwość wyodrębnienia hierarchii interfejsu Androida na danym ekranie, aby móc przeprowadzić na nim testy.
Jeśli ekran w aplikacji nie korzysta z widżetów interfejsu użytkownika Androida, testy Robo korzystają z działań Monkey, aby przetestować ten ekran. W przeciwieństwie do bardziej metodycznych działań testowych w Robo Test, działania w Monkey Test symulują po prostu zdarzenia dotknięcia w losowych miejscach 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 kliknięcia w Monkey Action zestawem kliknięć i interakcji z wykorzystaniem skryptu w Firebase Test Lab testach pętli gry.
Integracja z Google Play
Test Robo w Konsoli Google Play możesz użyć podczas przesyłania i publikowania pliku APK aplikacji za pomocą kanału alfa lub beta. Test Robo jest przeprowadzany na zestawach popularnych urządzeń fizycznych z różnych lokalizacji geograficznych, co zapewnia pokrycie testów w różnych formatach i konfiguracjach sprzętowych. Więcej informacji znajdziesz w artykule Używanie raportów przed opublikowaniem do identyfikowania problemów.
Testowanie logowania na konto i wprowadzania gotowego tekstu
Test Robo obsługuje logowanie na koncie testowym i umożliwia wpisywanie wstępnie zdefiniowanego tekstu w polach w aplikacji. W przypadku niestandardowego logowania i innych wstępnie zdefiniowanych danych wejściowych tekstowych test Robo może wpisywać tekst w polach EditText
w aplikacji. W przypadku każdego ciągu musisz zidentyfikować pole EditText
za pomocą nazwy zasobu Androida. Więcej informacji znajdziesz w artykule [GA4] Dostęp do zasobów.
Zaloguj się
Testowanie automatyczne ma 2 metody logowania, które są wzajemnie wykluczające się:
Logowanie niestandardowe: jeśli podasz dane logowania do konta testowego, musisz podać Robo Test, gdzie je wpisać.
Logowanie automatyczne: jeśli Twoja aplikacja ma ekran logowania, który używa konta Google do uwierzytelniania, test Robo używa konta testowego Google, chyba że podasz dane logowania do konta testowego na potrzeby logowania niestandardowego.
Aby podać dane logowania na konto testowe do logowania niestandardowego:
Na stronie Wybieranie wymiarów kliknij Dodatkowe opcje.
W sekcji Dane logowania na konto testowe (opcjonalnie) wpisz nazwę użytkownika i hasło do zasobu oraz nazwę użytkownika i hasło do konta testowego.
Wstępnie zdefiniowany tekst
Możesz podać niestandardowy tekst wprowadzany w innych polach tekstowych używanych przez aplikację. Aby podać tekst wprowadzany w dodatkowych polach, wykonaj te czynności:
Na stronie Wybieranie wymiarów kliknij Dodatkowe opcje.
W sekcji Dodatkowe pola (opcjonalnie) wpisz co najmniej 1 nazwę zasobu oraz ciągi znaków, które mają być wpisywane w odpowiednich polach tekstowych.
Błędy w danych wejściowych wstępnie zdefiniowanego tekstu {:#predefined-text}
Testowanie automatyczne wyszukiwania pól EditText
z nazwą zasobu Androida, która pasuje do podanego wyrażenia regularnego. Jeśli robot nie znajdzie pasującego pola, nie wprowadzi tekstu, ale będzie kontynuować indeksowanie w zwykły sposób.
Precyzyjne linki
Do testów możesz podać maksymalnie 3 precyzyjne linki obsługiwane przez Twoją aplikację.
Precyzyjne linki są wysyłane do Twojej aplikacji jako intencje Androida
ACTION_VIEW
. Dlatego każdy link musi pasować do filtra intencji w aplikacji.
Jeśli podano co najmniej 1 link do podstrony, aplikacja jest najpierw uruchamiana normalnie (za pomocą inencji ACTION_MAIN
) i przeszukiwana do określonego limitu czasu. Po głównym indeksowaniu każdy precyzyjny link jest indeksowany przez kolejne 30 sekund.
Błędy precyzyjnych linków
Jeśli test Robo nie znajdzie aktywności pasującej do precyzyjnego linku, Test Labignoruje ten link. Problemy z precyzyjnymi linkami są zwykle spowodowane rozbieżnością między podanym precyzyjnym linkiem a jego definicją w aplikacji. Sprawdź zarówno podany URL, jak i aplikację pod kątem literówek lub innych niespójności.
Pomoc dotycząca licencjonowania aplikacji
Test Lab obsługuje aplikacje, które korzystają z usługi Licencjonowania aplikacji oferowanej przez Google Play. Aby sprawdzić licencjonowanie podczas testowania aplikacji za pomocą Test Lab, musisz opublikować ją na produkcyjnym kanale w Sklepie Play. Aby przetestować aplikację na kanale alfa lub beta za pomocą Test Lab, usuń kontrolę licencji przed przesłaniem aplikacji do Test Lab.
Dalsze kroki
- Dostosuj testy za pomocą skryptów Robo.