W tym dokumencie opisujemy, jak korzystać ze skryptów Robo, czyli testów, które automatyzują ręczne zadania kontroli jakości w przypadku aplikacji mobilnych i włączają strategie ciągłej integracji (CI) oraz strategie testowania przed opublikowaniem. Możesz na przykład wykorzystać skrypty Robo do przetestowania typowej ścieżki użytkownika lub udostępnienia określonych danych wejściowych w interfejsie, takich jak nazwa użytkownika i hasło. Skrypty Robo to funkcja testu Robo.
W przypadku skryptów Robo najpierw nagrywasz w aplikacji przepływ pracy, a potem przesyłasz nagranie do konsoli Firebase, aby uruchomić testy Robo. Gdy przeprowadzasz test Robo z dołączonym skryptem, robot najpierw wykonuje czynności oskryptowane przez Ciebie, a potem analizuje aplikację według normalnego schematu.
Skrypty Robo używają testu Robo jako mechanizmu testowego. W najprostszej formie skrypt Robo składa się z sekwencji działań w interfejsie, takich jak wpisanie tekstu „nazwa użytkownika” i następnie kliknięcie przycisku OK. Skrypty robota mogą też zawierać takie działania jak oczekiwanie na pojawienie się elementu, kliknięcie w określonym miejscu elementu i wykonywanie poleceń w powłoce Android Debug Bridge (adb
).
Skrypty robota mają następujące zalety w porównaniu z tradycyjnymi ramami testowania:
Uprawnienia | Opis |
Wysoka odporność | Skrypty robota mogą tolerować znaczne różnice strukturalne i behawioralne między wersjami aplikacji oraz ich niestabilnością. |
Otwarte | Po zakończeniu działania skryptu Robo podstawowy test Robo może przejąć aplikację i kontynuować testowanie aplikacji. To ciągłe testowanie umożliwia kilka kluczowych przypadków użycia. Możesz na przykład użyć skryptu Robo, aby ustawić aplikację w określonym stanie, wykonując niestandardowy proces logowania. |
Z możliwością nagrywania | Nie musisz kodować skryptów Robo ręcznie. Można je nagrywać za pomocą rejestratora skryptów Robo w Android Studio. Tworzenie i modyfikowanie skryptów Robo zwykle nie wymaga znajomości programowania na urządzenia mobilne. |
Elastyczne | Skrypty robota mogą wchodzić w interakcje z nienatywnymi elementami interfejsu, które są powszechne w grach. |
Podczas testu skrypty Robo są uruchamiane warunkowo, co pozwala użytkownikom rozszerzać działanie Robo – zwykle w celu zwiększenia zasięgu lub ukierunkowania na konkretne funkcje. W przeciwieństwie do tradycyjnych platform testowych skrypty Robo obsługują te aspekty:
- różne warunki wywołania, np. czy nazwa konkretnego pakietu aplikacji jest aktywna (lub nie) lub czy określony element jest wyświetlany na ekranie (lub nie);
- Ustawienia wykonania, np. maksymalna liczba wykonań, priorytet, odpowiedni etap indeksowania.
- Nietypowe typy działań (warunkowe, ignorujące elementy, zamykające ekran).
Zalecamy, aby w miarę możliwości używać skryptów Robo, ponieważ można je łatwo konserwować. Skrypt Robo możesz na przykład użyć do:
- Przechodzenie przez najważniejsze procesy, aby dotrzeć do głównej funkcjonalności aplikacji. Możesz na przykład zalogować się, skonfigurować stan aplikacji po pierwszym uruchomieniu i zarejestrować nowego użytkownika.
- Skoncentruj Robo na konkretnym obszarze aplikacji, aby w pełni wykorzystać czas testowania. Skrypt Robo prowadzi test Robo do właściwej części aplikacji, w której test Robo wznawia w pełni zautomatyzowane indeksowanie.
- Uruchom aplikację w określonym stanie lub na określonym ekranie, aby przeprowadzić analizę, na przykład analizę wiadomości w aplikacji, polityki prywatności lub określonego poziomu w grze.
- Przeprowadź kompleksowy test pomiarowy z testem Robo (z testem Robo lub bez niego) w ramach całkowicie zautomatyzowanego indeksowania po zakończeniu działania skryptu Robo.
Zaawansowane funkcje skryptu Robo umożliwiają:
- Wykonaj działania, zanim Robo rozpocznie indeksowanie aplikacji w trakcie testowania lub po zakończeniu indeksowania. Na przykład wyczyść dane w trakcie testowania przed indeksowaniem lub zmień ustawienia urządzenia.
- Zmiana aspektów działania robota podczas indeksowania, w tym:
- Spraw, aby Robo ignorowało niektóre widżety interfejsu lub ekrany aplikacji.
- Określ niestandardowe działanie, które Robo ma wykonać podczas cofania z określonego ekranu.
- Sprawianie, aby Robo wykonywał określone działania, gdy podczas indeksowania napotka określony ekran aplikacji.
- Możesz całkowicie dostosować sposób indeksowania przez Robo. Możesz na przykład użyć kombinacji działań warunkowych i bezwarunkowych, aby utrzymać testowaną aplikację w tle podczas indeksowania, a zarazem wykonywać manipulacje na urządzeniu i zamykać pojawiające się okna dialogowe.
Pamiętaj, że skrypty robota nie zastępują wszystkich rodzajów testów. Nadal potrzebujesz testów jednostkowych, aby wykrywać błędy logiki niskiego poziomu w aplikacji. Te testy zazwyczaj nie wymagają środowiska Android ani iOS. Zalecamy uzupełnianie testów skryptu Robo o testy ukierunkowane na instrumentowanie, które mogą zawierać szczegółowe twierdzenia dotyczące logiki biznesowej. Najlepiej wyrażać je w kodzie.
Nagraj skrypt Robo za pomocą Test Lab w Android Studio
Rejestrator skryptów Robo w Android Studio umożliwia nagrywanie skryptów Robo poprzez bezpośrednią interakcję z aplikacją na urządzeniu. Aby rozpocząć tworzenie skryptów Robo za pomocą narzędzia Firebase w Android Studio, wykonaj te czynności:
Otwórz Android Studio i kliknij Narzędzia -> Firebase.
W panelu Firebase kliknij Zarejestruj skrypt Robo i użyj go do przeprowadzenia testu Robo.
Kliknij Nagraj skrypt Robo. Pojawi się okno Wybierz cel wdrożenia.
Wybierz urządzenie, na którym chcesz nagrywać skrypt Robo.
Po nagraniu skryptu Robo na urządzeniu zapisz plik w formacie JSON w wybranej lokalizacji.
W konsoli Firebase otwórz stronę Test Lab i prześlij plik skryptu JSON oraz plik APK aplikacji.
Kliknij przycisk Dalej. Pojawi się prośba o wybranie urządzenia i poziomu interfejsu API. Po zakończeniu działania skryptu testowego Test Lab wygeneruje raport z testu.
(Opcjonalnie) Aby skopiować lub pobrać plik logcat raportu testu i filmu, kliknij Wyświetl pliki źródłowe.
Domyślnie mechanizmy odporności skryptu Robo zapobiegają jego przedwczesnemu niepowodzeniu.
Jeśli wybierzesz tryb wykonywania strict
, a skrypt Robo w pewnym momencie ulegnie awarii, Test Lab porzuci wszystkie dalsze kroki skryptu i wznowi zwykłe indeksowanie Robo. Skrypty Robo najczęściej ulegają awarii, ponieważ Robo nie może znaleźć wymaganego elementu na ekranie. Aby uniknąć błędów, zadbaj o to, aby nawigacja w aplikacji była przewidywalna, a ekrany wyświetlane w określonej kolejności deterministycznej.
Uruchamianie skryptu Robo w Test Lab
Aby uruchomić skrypt Robo w Test Lab, wykonaj te czynności:
Otwórz stronę Test Lab w konsoli Firebase.
Prześlij pakiet APK lub AAB aplikacji w polu Plik APK lub AAB aplikacji.
W polu Skrypt Robo (opcjonalnie) prześlij nagrany lub utworzony ręcznie plik skryptu Robo.
Przekazywanie skryptu Robo do lokalnego testu Robo
Aby podać skrypt Robo do lokalnego 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 testu Roborun.
Określanie skryptu Robo w wywołaniu testu interfejsu wiersza poleceń gcloud
Aby określić skrypt Robo w wywołaniu testu w interfejsie wiersza poleceń gcloud, użyj tego parametru 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 przy użyciu notacji gs://
. Przykład:
gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>
Dalsze kroki
- Informacje o strukturze, możliwościach, zastosowaniu i działaniach skryptów Robo znajdziesz w przewodniku po skryptach Robo.
- Przeprowadź test Robo.