Twórz testy interfejsu za pomocą Dyktafonu Espresso

Narzędzie Espresso Test Recorder umożliwia tworzenie testów interfejsu aplikacji bez pisania kodu testowego. Nagrywając scenariusz testowy, możesz rejestrować interakcje z urządzeniem i dodawać asercje, aby weryfikować elementy interfejsu w określonych zrzutach aplikacji. Rejestrator testów Espresso zapisuje nagranie i automatycznie generuje odpowiedni test interfejsu, który możesz uruchomić, aby przetestować aplikację.

Espresso Test Recorder tworzy testy na podstawie platformy testowej Espresso, czyli interfejsu API w AndroidX Test. Interfejs Espresso API zachęca do tworzenia zwięzłych i niezawodnych testów interfejsu opartych na działaniach użytkownika. Określając oczekiwania, interakcje i asercje bez bezpośredniego dostępu do działań i widoków aplikacji, ta struktura zapobiega niestabilności testów i optymalizuje szybkość ich przeprowadzania.

Wyłączanie animacji na urządzeniu testowym

Zanim zaczniesz korzystać z rejestratora testów Espresso, wyłącz animacje na urządzeniu testowym, aby uniknąć nieoczekiwanych wyników. Postępuj zgodnie z instrukcjami konfiguracji Espresso, ale pamiętaj, że nie musisz ręcznie ustawiać odwołania do zależności w bibliotece Espresso, ponieważ Rejestrator testów robi to automatycznie, gdy zapisujesz nagranie. Te kroki wystarczy wykonać tylko raz w przypadku danego projektu.

Nagrywanie testu Espresso

Testy Espresso składają się z 2 głównych komponentów: interakcji z interfejsem i asercji dotyczących elementów View. Interakcje z interfejsem obejmują działania polegające na klikaniu i pisaniu, które użytkownik może wykonywać, aby korzystać z Twojej aplikacji. Asercje weryfikują istnienie lub zawartość elementów wizualnych na ekranie. Na przykład test Espresso dla aplikacji do testowania notatek może obejmować interakcje z interfejsem, takie jak kliknięcie przycisku i napisanie nowej notatki, ale do weryfikacji istnienia przycisku i zawartości notatki używa asercji.

Z tej sekcji dowiesz się, jak utworzyć oba te komponenty testowe za pomocą narzędzia Espresso Test Recorder, a także jak zapisać gotowe nagranie, aby wygenerować test.

Rejestrowanie interakcji z interfejsem

Aby rozpocząć nagrywanie testu za pomocą narzędzia Espresso Test Recorder, wykonaj te czynności:

  1. Kliknij Uruchom> Nagrywaj test Espresso.
  2. W oknie Wybierz miejsce docelowe wdrożenia wybierz urządzenie, na którym chcesz nagrać test. W razie potrzeby utwórz nowe wirtualne urządzenie z Androidem. Kliknij OK.
  3. Rejestrator testów Espresso uruchamia kompilację projektu, a aplikacja musi zostać zainstalowana i uruchomiona, zanim rejestrator testów Espresso umożliwi Ci interakcję z nią. Po uruchomieniu aplikacji pojawi się okno Record Your Test (Nagrywaj test). Ponieważ nie weszliśmy jeszcze w interakcję z urządzeniem, w panelu głównym wyświetli się komunikat „No events recorded yet” (Nie zarejestrowano jeszcze żadnych zdarzeń). Wejdź w interakcję z urządzeniem, aby rozpocząć rejestrowanie zdarzeń, takich jak „kliknięcie” i „wpisanie”.

Uwaga: zanim zaczniesz rejestrować interakcje, na urządzeniu może pojawić się okno z komunikatem „Oczekiwanie na debuger” lub „Podłączanie debugera”. Rejestrator testów Espresso używa debugera do rejestrowania zdarzeń interfejsu. Gdy debuger zostanie dołączony, okno zamknie się automatycznie. Nie klikaj Wymuś zamknięcie.

Zarejestrowane interakcje będą widoczne w panelu głównym w oknie Nagrywanie testu, jak pokazano na ilustracji 1 poniżej. Podczas przeprowadzania testu Espresso będzie próbować wykonać te działania w tej samej kolejności.

Rysunek 1. Okno Record Your Test (Zarejestruj test) z zarejestrowanymi interakcjami z interfejsem.

Dodawanie asercji w celu weryfikacji elementów interfejsu

Asercje weryfikują istnienie lub zawartość elementu View za pomocą 3 głównych typów:

  • tekst to: sprawdza zawartość tekstową wybranego elementu widoku.
  • exists: sprawdza, czy element View jest obecny w bieżącej hierarchii View widocznej na ekranie.
  • nie istnieje: sprawdza, czy element View nie występuje w bieżącej hierarchii widoku.

Aby dodać do testu asercję, wykonaj te czynności:

  1. Kliknij Add Assertion (Dodaj asercję). Pojawi się okno Screen Capture , a Espresso pobierze hierarchię interfejsu i inne informacje o bieżącym stanie aplikacji. Gdy Espresso zrobi zrzut ekranu, okno dialogowe zamknie się automatycznie.
  2. Układ bieżącego ekranu pojawi się w panelu po prawej stronie okna Nagrywanie testu. Aby wybrać element widoku, na którym chcesz utworzyć asercję, kliknij element na zrzucie ekranu lub użyj pierwszego menu u dołu okna w polu Edytuj asercję. Wybrany obiekt widoku jest wyróżniony czerwoną ramką.
  3. Wybierz asercję, której chcesz użyć, z drugiego menu w polu Edytuj asercję. Espresso wypełnia menu prawidłowymi asercjami dla wybranego elementu View.
    • Jeśli wybierzesz asercję „text is”, Espresso automatycznie wstawia tekst znajdujący się obecnie w wybranym elemencie View. Możesz edytować tekst, aby dopasować go do żądanego potwierdzenia, korzystając z pola tekstowego w oknie Edytuj potwierdzenie.
  4. Kliknij Zapisz i dodaj kolejną, aby utworzyć kolejne potwierdzenie, lub kliknij Zapisz potwierdzenie, aby zamknąć panele potwierdzeń.

Zrzut ekranu na rysunku 2 pokazuje tworzenie asercji „text is” w celu sprawdzenia, czy tytuł notatki to „Happy Testing!”:

Rysunek 2. Pole Edytuj asercję po wybraniu elementu Wyświetl (na czerwono).

Podczas tworzenia asercji możesz nadal korzystać z aplikacji, nawet jeśli panele asercji są otwarte w oknie Nagrywanie testu. Rejestrator testów Espresso będzie nadal rejestrować Twoje działania, ale po zapisaniu edytowane przez Ciebie potwierdzenie pojawi się przed tymi interakcjami. Zrzut ekranu dla asercji zachowuje też układ, który był na urządzeniu lub emulatorze w momencie kliknięcia przycisku Dodaj asercję.

Zapisywanie nagrania

Po zakończeniu interakcji z aplikacją i dodaniu asercji wykonaj te czynności, aby zapisać nagranie i wygenerować test Espresso:

  1. Kliknij Zakończ nagrywanie. Pojawi się okno Wybierz nazwę klasy testowej.
  2. Rejestrator testów Espresso nadaje testowi unikalną nazwę w ramach pakietu na podstawie nazwy uruchomionego działania. Jeśli chcesz zmienić sugerowaną nazwę, użyj pola tekstowego Nazwa klasy testu. Kliknij Zapisz.
    • Jeśli nie dodasz do aplikacji zależności Espresso, podczas próby zapisania testu pojawi się okno dialogowe Brakujące zależności Espresso. Kliknij Tak, aby automatycznie dodać zależności do pliku build.gradle.
  3. Po wygenerowaniu pliku przez Espresso Test Recorder otwiera się on automatycznie, a Android Studio wyświetla klasę testową jako wybraną w oknie Project (Projekt) w IDE.
    • Miejsce zapisania testu zależy od lokalizacji katalogu głównego testu instrumentacyjnego oraz nazwy pakietu uruchomionej aktywności. Na przykład testy aplikacji do testowania notatek są zapisywane w folderze src> androidTest > java > com.example.username.appname modułu aplikacji, w którym został zarejestrowany test.

Lokalne przeprowadzanie testu Espresso

Aby uruchomić test Espresso, użyj okna Project po lewej stronie środowiska IDE Android Studio:

  1. Otwórz folder modułu aplikacji i przejdź do testu, który chcesz uruchomić. Lokalizacja testu zależy od lokalizacji katalogu głównego testu instrumentacyjnego i nazwy pakietu uruchomionej aktywności. W tych przykładach pokazujemy, gdzie test zostanie zapisany w aplikacji do testowania notatek:
    • Jeśli w oknie używasz widoku Android, otwórz java > com.example.username.appname (androidTest).
    • Jeśli w oknie używasz widoku Project (Projekt), przejdź do src> androidTest > java > com.example.username.appname w folderze modułu.
  2. Kliknij prawym przyciskiem myszy test i wybierz Uruchom „nazwa_testu”.
    • Możesz też otworzyć plik testowy i kliknąć prawym przyciskiem myszy wygenerowaną klasę lub metodę testową. Więcej informacji o przeprowadzaniu testów znajdziesz na stronie Testowanie aplikacji.
  3. W oknie Wybierz miejsce wdrożenia wybierz urządzenie, na którym chcesz przeprowadzić test. W razie potrzeby utwórz nowe wirtualne urządzenie z Androidem. Kliknij OK.

Postępy testu możesz śledzić w oknie Uruchom u dołu środowiska IDE. Android Studio przeprowadzi pełną kompilację projektu i otworzy kartę z nazwą testu w oknie Uruchom, jak pokazano na rysunku 3. Na tej karcie możesz sprawdzić, czy test został zaliczony, oraz czas jego trwania. Po zakończeniu testu na karcie pojawi się komunikat „Tests ran to completion” (Testy zostały przeprowadzone do końca).

Rysunek 3. Przykładowe dane wyjściowe w oknie Uruchom po lokalnym uruchomieniu testu Espresso.

Więcej informacji o tworzeniu konfiguracji uruchamiania testów znajdziesz w sekcji „Defining a test configuration for a class or method” (Definiowanie konfiguracji testu dla klasy lub metody) w artykule Create and Edit Run/Debug Configurations (Tworzenie i edytowanie konfiguracji uruchamiania/debugowania).

Przeprowadzanie testu Espresso w Laboratorium Firebase na Androida

Testy wygenerowane przez Rejestrator testów Espresso możesz wykorzystać w Laboratorium Firebase, aby testować aplikację w chmurze na setkach konfiguracji urządzeń. Testowanie aplikacji w Test Lab w ramach bezpłatnego dziennego limitu w abonamencie Spark jest bezpłatne. Aby uruchomić testy Espresso w Laboratorium Firebase, utwórz projekt Firebase dla swojej aplikacji, a następnie postępuj zgodnie z instrukcjami, aby uruchomić testy w Laboratorium Firebase w Android Studio.

Rysunek 4. Przykładowe dane wyjściowe w oknie Uruchom po przeprowadzeniu testu w Laboratorium Firebase na wielu urządzeniach.