Uruchom skrypt Robo (Android)

W tym dokumencie opisano sposób korzystania ze skryptów Robo , czyli testów automatyzujących ręczne zadania kontroli jakości dla aplikacji mobilnych i umożliwiających ciągłą integrację (CI) oraz strategie testowania przed uruchomieniem. Możesz na przykład użyć skryptów Robo do przetestowania wspólnej podróży użytkownika lub wprowadzenia określonych danych wejściowych interfejsu użytkownika, takich jak nazwa użytkownika i hasło. Skrypty Robo są cechą testu Robo .

Dzięki skryptom Robo nagrywasz siebie podczas wykonywania pracy w aplikacji, a następnie przesyłasz to nagranie do konsoli Firebase, aby uruchomić je w testach Robo. Kiedy uruchamiasz test Robo z dołączonym skryptem, Robo najpierw wykonuje wcześniej zaplanowane działania, a następnie w zwykły sposób eksploruje aplikację.

Skrypty Robo wykorzystują test Robo jako silnik testowy. W swojej najbardziej podstawowej formie skrypt Robo składa się z sekwencji działań interfejsu użytkownika, takich jak wprowadzenie tekstu „nazwa użytkownika” , a następnie dotknięcie przycisku OK . Skrypty Robo mogą również obejmować działania, takie jak oczekiwanie na pojawienie się elementu, dotknięcie określonego punktu elementu i wykonanie poleceń powłoki Android Debug Bridge ( adb ).

Skrypty Robo mają następujące zalety w porównaniu z tradycyjnymi platformami testowymi:

Zdolność Opis
Bardzo wytrzymały Skrypty Robo tolerują znaczne różnice strukturalne i behawioralne pomiędzy wersjami aplikacji oraz niestabilność aplikacji.
Otwarty Po zakończeniu skryptu Robo podstawowy test Robo może przejąć kontrolę i kontynuować testowanie aplikacji. To podejście do ciągłego testowania umożliwia kilka kluczowych przypadków użycia. Możesz na przykład użyć skryptu Robo, aby wprowadzić aplikację do określonego stanu, wykonując niestandardowy proces logowania.
Możliwość nagrywania Nie musisz ręcznie kodować skryptów Robo. Można je nagrać za pomocą rejestratora skryptów Robo w Android Studio. Tworzenie lub modyfikowanie skryptów Robo zazwyczaj nie wymaga żadnej wiedzy na temat programowania mobilnego.
Elastyczny Skrypty Robo mogą wchodzić w interakcję z nienatywnymi elementami interfejsu użytkownika, które są powszechne w grach.

Skrypty Robo są uruchamiane warunkowo podczas testu Robo, co pozwala użytkownikom ulepszyć zachowanie Robo — zazwyczaj w celu uzyskania większego zasięgu lub ukierunkowania na określoną funkcjonalność. W przeciwieństwie do tradycyjnych frameworków testowych, skrypty Robo obsługują następujące elementy:

  • Różne warunki wyzwalania, na przykład aktywna (lub nie) konkretna nazwa pakietu aplikacji lub określony element wyświetlany na ekranie (lub nie).
  • Wykonanie kontroluje np. maksymalną liczbę wykonań, priorytet, odpowiedni etap indeksowania.
  • Niekonwencjonalne typy akcji (warunkowe, ignorowanie elementów, zamykanie ekranu).

Zalecamy używanie skryptów Robo, gdy tylko jest to możliwe, ponieważ można je łatwo konserwować. Na przykład możesz użyć skryptu Robo, aby wykonać następujące czynności:

  • Poruszaj się po najważniejszych przepływach pracy, aby dotrzeć do sedna funkcjonalności aplikacji. Możesz na przykład zalogować się, skonfigurować stan aplikacji po pierwszym uruchomieniu i zarejestrować nowego użytkownika.
  • Skoncentruj Robo na określonej części aplikacji, aby maksymalnie wykorzystać czas testowania Robo. Skrypt Robo prowadzi test Robo do odpowiedniej części aplikacji, gdzie test Robo wznawia w pełni zautomatyzowane indeksowanie.
  • Przenieś aplikację do określonego stanu lub ekranu, aby przeprowadzić analizę, na przykład w celu przeanalizowania wiadomości w aplikacji, polityki prywatności lub określonego poziomu gry.
  • Wykonaj kompleksowy test oprzyrządowania, z testem Robo lub bez niego, wznawiając w pełni zautomatyzowane indeksowanie po ukończeniu skryptu Robo.

Użyj bardziej zaawansowanych funkcji skryptu Robo, aby wykonać następujące czynności:

  • Wykonaj czynności, zanim Robo rozpocznie indeksowanie testowanej aplikacji lub po jej zakończeniu, na przykład wyczyść dane testowanej aplikacji przed indeksowaniem lub zmień ustawienia urządzenia.
  • Zmień aspekty zachowania Robo podczas indeksowania, w szczególności:
    • Spraw, aby Robo ignorował niektóre widżety interfejsu użytkownika lub ekrany aplikacji.
    • Zapewnij niestandardową akcję, którą Robo może wykonać podczas cofania się z określonego ekranu.
    • Spraw, aby Robo wykonywał określone czynności za każdym razem, gdy podczas indeksowania napotkany zostanie określony ekran aplikacji.
  • Całkowicie dostosuj sposób, w jaki Robo wykonuje indeksowanie. Na przykład użyj kombinacji działań warunkowych i bezwarunkowych, aby testowana aplikacja pozostawała w tle przez cały czas indeksowania, jednocześnie wykonując operacje na urządzeniu i odrzucając wszelkie wyskakujące okna dialogowe, które pojawią się po drodze.

Należy pamiętać, że skrypty Robo nie zastępują wszelkiego rodzaju testów. Nadal potrzebujesz testów jednostkowych, aby wychwycić błędy logiczne niskiego poziomu w swojej aplikacji; testy te zazwyczaj nie wymagają środowiska Android lub iOS. Zalecamy uzupełnienie testów skryptów Robo o ukierunkowane testy instrumentacyjne, które mogą zawierać konkretne, szczegółowe stwierdzenia dotyczące logiki biznesowej, które najlepiej wyrazić w kodzie.

Nagraj skrypt Robo za pomocą Laboratorium testowego w Android Studio

Rejestrator skryptów Robo w Android Studio umożliwia nagrywanie skryptów Robo poprzez bezpośrednią interakcję z aplikacją na Twoim urządzeniu. Postępuj zgodnie z poniższymi instrukcjami, aby rozpocząć korzystanie ze skryptów Robo za pomocą narzędzia Firebase w Android Studio:

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

  2. W panelu Firebase kliknij opcję Nagraj skrypt Robo i użyj go do prowadzenia testu Robo .

  3. Kliknij opcję Nagraj skrypt Robo . Zostanie wyświetlone okno dialogowe Wybierz cel 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ę Laboratorium testowego w konsoli Firebase i prześlij plik skryptu JSON oraz plik APK aplikacji.

  7. Kliknij przycisk Kontynuuj . Zostaniesz poproszony o wybranie urządzenia i poziomu interfejsu API. Po ukończeniu skryptu testowego Laboratorium testowe generuje raport z testu.

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

Domyślnie mechanizmy odporności skryptu Robo zapobiegają jego wczesnym awariom. Jeśli wybierzesz tryb strict wykonania i skrypt Robo zakończy się niepowodzeniem w dowolnym momencie, laboratorium testowe porzuci wszystkie dalsze kroki w skrypcie i wznawia zwykłe przeszukiwanie Robo. Najczęściej skrypty Robo zawodzą, ponieważ Robo nie może znaleźć wymaganego elementu na ekranie. Aby uniknąć awarii, upewnij się, że nawigacja w aplikacji jest przewidywalna, a ekrany są wyświetlane w deterministycznej kolejności.

Uruchom skrypt Robo w laboratorium testowym

Aby uruchomić skrypt Robo w laboratorium testowym, postępuj zgodnie z poniższymi instrukcjami:

  1. Otwórz stronę Laboratorium testowe w konsoli Firebase.

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

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

Dostarcz skrypt Robo do lokalnego uruchomienia testowego Robo

Aby udostępnić skrypt Robo do lokalnego testu Robo, użyj następującej 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 lokalnego uruchomienia testowego Robo .

Określ skrypt Robo w wywołaniu testowym interfejsu wiersza polecenia gcloud

Aby określić skrypt Robo w wywołaniu testowym CLI gcloud, użyj następującej flagi CLI gcloud:

--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, używając notacji gs:// . Na przykład:

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

Następne kroki