Uruchamianie skryptu Robo (Android)

Z tego dokumentu dowiesz się, jak używać skryptów Robo, czyli testów, które automatyzują ręczne zadania kontroli jakości w przypadku aplikacji mobilnych i umożliwiają stosowanie strategii ciągłej integracji (CI) oraz testowania przed opublikowaniem. Możesz na przykład używać skryptów Robo do testowania typowej ścieżki użytkownika lub do wprowadzania określonych danych w interfejsie użytkownika, takich jak nazwa użytkownika i hasło. Skrypty Robo to funkcja testu Robo.

Za pomocą skryptów Robo możesz nagrać, jak wykonujesz określony proces w aplikacji, a następnie przesłać to nagranie do Firebase konsoli, aby uruchomić je w testach Robo. Gdy uruchamiasz test Robo z dołączonym skryptem, Robo najpierw wykonuje czynności oskryptowane przez Ciebie, a potem analizuje aplikację według normalnego schematu.

Skrypty Robo używają testu Robo jako silnika testowego. W najprostszej postaci skrypt Robo składa się z sekwencji działań w interfejsie użytkownika, takich jak wpisanie tekstu „nazwa użytkownika” , a następnie kliknięcie przycisku OK. Skrypty Robo mogą też zawierać działania takie jak czekanie na pojawienie się elementu, kliknięcie w określonym miejscu elementu i wykonywanie poleceń powłoki Android Debug Bridge (adb).

Skrypty Robo mają te zalety w porównaniu z tradycyjnymi frameworkami testowymi:

Możliwość Opis
Wysoka niezawodność Skrypty Robo mogą tolerować znaczne różnice strukturalne i behawioralne między wersjami aplikacji oraz niestabilność aplikacji.
Otwarte Po zakończeniu skryptu Robo podstawowy test Robo może przejąć kontrolę i kontynuować testowanie aplikacji. To podejście do testowania umożliwia kilka kluczowych przypadków użycia. Możesz na przykład użyć skryptu Robo, aby wprowadzić aplikację w określony stan, wykonując niestandardowy proces logowania.
Z nagraniem Nie musisz ręcznie kodować skryptów Robo. Możesz je nagrywać za pomocą the Robo script recorder w Android Studio. Tworzenie i modyfikowanie skryptów Robo zwykle nie wymaga znajomości tworzenia aplikacji mobilnych.
Elastyczne Skrypty Robo mogą wchodzić w interakcje z nienatywnymi elementami interfejsu użytkownika, które są powszechne w grach.

Skrypty Robo są warunkowo wywoływane podczas testu Robo, co pozwala użytkownikom rozszerzać zachowanie Robo – zwykle w celu uzyskania większego pokrycia lub przetestowania określonej funkcji. W przeciwieństwie do tradycyjnych frameworków testowych skrypty Robo obsługują:

  • różne warunki wyzwalania, np. aktywność (lub brak aktywności) określonej nazwy pakietu aplikacji lub wyświetlanie (lub brak wyświetlania) określonego elementu na ekranie;
  • elementy sterujące wykonywaniem, np. maksymalna liczba wykonań, priorytet, odpowiedni etap indeksowania;
  • nietypowe typy działań (warunkowe, ignorujące elementy, zamykające ekran).

Jeśli to możliwe, zalecamy używanie skryptów Robo, ponieważ można je łatwo utrzymywać. Możesz na przykład użyć skryptu Robo, aby:

  • przejść przez ważne procesy, aby dotrzeć do podstawowych funkcji aplikacji; możesz na przykład zalogować się, skonfigurować stan aplikacji po pierwszym uruchomieniu i zarejestrować nowego użytkownika;
  • skupić Robo na określonej części aplikacji, aby jak najlepiej wykorzystać czas testu Robo; skrypt Robo kieruje test Robo do odpowiedniej części aplikacji, w której test Robo wznawia w pełni zautomatyzowane indeksowanie;
  • wprowadzić aplikację w określony stan lub wyświetlić określony ekran, aby przeprowadzić analizę, np. przeanalizować wiadomość w aplikacji, politykę prywatności lub określony poziom gry;
  • przeprowadzić kompleksowy test z instrumentacją, z w pełni zautomatyzowanym indeksowaniem wznawianym przez test Robo po zakończeniu skryptu Robo lub bez niego.

Aby wykonać te czynności, użyj bardziej zaawansowanych funkcji skryptu Robo:

  • wykonywanie działań przed rozpoczęciem indeksowania testowanej aplikacji przez Robo lub po zakończeniu indeksowania, np. czyszczenie danych testowanej aplikacji przed indeksowaniem lub zmiana ustawień urządzenia;
  • zmienianie aspektów zachowania Robo podczas indeksowania, w szczególności:
    • ignorowanie przez Robo niektórych widżetów interfejsu użytkownika lub ekranów aplikacji;
    • udostępnianie niestandardowego działania, które Robo ma wykonać podczas cofania się z określonego ekranu;
    • wykonywanie przez Robo określonych działań za każdym razem, gdy podczas indeksowania napotka określony ekran aplikacji;
  • pełne dostosowywanie sposobu indeksowania przez Robo. Możesz na przykład użyć kombinacji działań warunkowych i bezwarunkowych, aby testowana aplikacja działała w tle przez cały czas indeksowania, a jednocześnie wykonywać manipulacje na urządzeniu i zamykać wszystkie wyskakujące okna, które pojawiają się po drodze.

Pamiętaj, że skrypty Robo nie zastępują wszystkich rodzajów testów. Nadal potrzebujesz testów jednostkowych, aby wykrywać błędy logiki niskiego poziomu w aplikacji. Te testy zwykle nie wymagają środowiska Androida ani iOS. Zalecamy uzupełnienie testów skryptów Robo o ukierunkowane testy z instrumentacją, które mogą zawierać szczegółowe asercje dotyczące logiki biznesowej, najlepiej wyrażone w kodzie.

Nagrywanie skryptu Robo za pomocą Test Lab w Android Studio

Rejestrator skryptów Robo w Android Studio umożliwia nagrywanie skryptów Robo przez bezpośrednie interakcje z aplikacją na urządzeniu. Aby rozpocząć korzystanie ze skryptów Robo za pomocą narzędzia Firebase w Android Studio, wykonaj te instrukcje:

  1. Otwórz Android Studio i kliknij Narzędzia > Firebase.

  2. W panelu Firebase kliknij Zarejestruj skrypt Robo i użyj go do kierowania testem Robo.

  3. Kliknij Zarejestruj skrypt Robo. Pojawi się okno Wybierz miejsce docelowe wdrożenia.

  4. Wybierz urządzenie, na którym chcesz nagrać skrypt Robo.

  5. Po nagraniu skryptu Robo na urządzeniu zapisz plik jako plik JSON w wybranej lokalizacji.

  6. Otwórz stronę Test Lab w konsoli Firebase i prześlij plik skryptu JSON oraz plik APK aplikacji.

  7. Kliknij przycisk Dalej. Zostanie wyświetlony monit o wybranie urządzenia i poziomu API. Po zakończeniu scenariusza testowania Test Lab wygeneruje raport z testu.

  8. (Opcjonalnie) Aby skopiować lub pobrać logcat raportu z testu i film, kliknij Wyświetl pliki źródłowe.

Domyślnie mechanizmy odporności skryptu Robo zapobiegają jego wczesnemu zakończeniu. Jeśli wybierzesz tryb wykonywania strict i skrypt Robo zakończy się niepowodzeniem w dowolnym momencie, Test Lab przerwie wszystkie dalsze kroki w skrypcie i wznowi zwykłe indeksowanie Robo. Najczęściej skrypty Robo kończą się niepowodzeniem, ponieważ Robo nie może znaleźć wymaganego elementu na ekranie. Aby uniknąć niepowodzeń, upewnij się, że nawigacja w aplikacji jest przewidywalna, a ekrany są wyświetlane w deterministycznej kolejności.

Uruchamianie skryptu Robo w Test Lab

Aby uruchomić skrypt Robo w Test Lab, wykonaj te instrukcje:

  1. Otwórz stronę Test Lab w konsoli Firebase.

  2. Prześlij plik APK lub AAB aplikacji w polu APK lub AAB aplikacji.

  3. Prześlij nagrany lub utworzony ręcznie plik skryptu Robo w polu Skrypt Robo (opcjonalnie).

Udostępnianie skryptu Robo do lokalnego uruchomienia testu Robo

Aby udostępnić skrypt Robo do lokalnego uruchomienia testu Robo, użyj tej opcji testu Robo:

--robo-script-file <robo-script-path>

Zastąp <robo-script-path> ścieżką do pliku skryptu Robo w lokalnym systemie plików. Postępuj zgodnie z instrukcjami dotyczącymi lokalnego uruchomienia testu Robo run.

Określanie skryptu Robo w wywołaniu testu gcloud CLI

Aby określić skrypt Robo w wywołaniu testu gcloud CLI, użyj tej flagi gcloud CLI:

--robo-script = <robo-script-path>

Zastąp <robo-script-path> ścieżką do pliku skryptu Robo w lokalnym systemie plików lub w Cloud Storage za pomocą notacji gs://. Przykład:

gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>

Dalsze kroki