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ć potwierdzenia, aby weryfikować elementy interfejsu w określonych zrzutach aplikacji. Espresso Test Recorder zapisuje nagranie i automatycznie generuje odpowiedni test interfejsu, który możesz uruchomić, aby przetestować aplikację.

Espresso Test Recorder tworzy testy na podstawie platformy Espresso Testing, czyli interfejsu API w AndroidX Test. Interfejs API Espresso zachęca do tworzenia zwięzłych i niezawodnych testów interfejsu opartych na działaniach użytkownika. Dzięki określaniu oczekiwań, interakcji i potwierdzeń 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 Espresso Test Recorder, wyłącz animacje na urządzeniu testowym, aby zapobiec nieoczekiwanym wynikom. Postępuj zgodnie z instrukcjami konfiguracji Espresso , ale pamiętaj, że nie musisz ręcznie ustawiać odniesienia do zależności w bibliotece Espresso, ponieważ Test Recorder robi to automatycznie po zapisaniu nagrania. Te czynności wystarczy wykonać tylko raz w danym projekcie.

Nagrywanie testu Espresso

Testy Espresso składają się z 2 głównych komponentów: interakcji z interfejsem i potwierdzeń elementów View. Interakcje z interfejsem obejmują działania, takie jak kliknięcie i wpisanie, których użytkownik może używać do interakcji z aplikacją. Asercje sprawdzają istnienie lub zawartość elementów wizualnych na ekranie. Na przykład test Espresso aplikacji do testowania notatek może obejmować interakcje z interfejsem, takie jak kliknięcie przycisku i napisanie nowej notatki, ale używa potwierdzeń do sprawdzenia istnienia przycisku i zawartości notatki.

W tej sekcji dowiesz się, jak utworzyć oba te komponenty testowe za pomocą Espresso Test Recorder oraz jak zapisać gotowe nagranie, aby wygenerować test.

Nagrywanie interakcji z interfejsem

Aby rozpocząć nagrywanie testu za pomocą Espresso Test Recorder:

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

Uwaga: zanim zaczniesz rejestrować interakcje, na urządzeniu może się pojawić okno z informacją „Oczekiwanie na debuger” lub „Dołączanie debugera”. Espresso Test Recorder używa debugera do rejestrowania zdarzeń interfejsu. Gdy debuger się dołączy, okno zamknie się automatycznie. Nie klikaj Wymuś zamknięcie.

Zarejestrowane interakcje pojawią się w panelu głównym w oknie Nagraj test (jak pokazano na rysunku 1 poniżej). Gdy uruchomisz test, test Espresso spróbuje wykonać te działania w tej samej kolejności.

Rysunek 1. Okno Nagraj test z zarejestrowanymi interakcjami z interfejsem.

Dodawanie potwierdzeń w celu weryfikacji elementów interfejsu

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

  • text is (tekst to): sprawdza zawartość tekstową wybranego elementu View.
  • exists (istnieje): sprawdza, czy element View jest obecny w bieżącej hierarchii widoków widocznej na ekranie.
  • does not exist (nie istnieje): sprawdza, czy element View nie jest obecny w bieżącej hierarchii widoków.

Aby dodać potwierdzenie do testu:

  1. Kliknij Dodaj potwierdzenie. Gdy Espresso pobiera hierarchię interfejsu i inne informacje o bieżącym stanie aplikacji, pojawia się okno Zrzut ekranu . Gdy Espresso zrobi zrzut ekranu, okno zamknie się automatycznie.
  2. Układ bieżącego ekranu pojawi się w panelu po prawej stronie okna Nagraj test. Aby wybrać element View , na którym chcesz utworzyć potwierdzenie, kliknij element na zrzucie ekranu lub użyj pierwszego menu w polu Edytuj potwierdzenie u dołu okna. Wybrany obiekt View jest wyróżniony czerwonym obramowaniem.
  3. Wybierz potwierdzenie, którego chcesz użyć, z drugiego menu w polu Edytuj potwierdzenie. Espresso wypełnia menu prawidłowymi potwierdzeniami dla wybranego elementu View.
    • Jeśli wybierzesz potwierdzenie „text is” (tekst to), Espresso automatycznie wstawi tekst znajdujący się obecnie w wybranym elemencie View. Możesz edytować tekst, aby dopasować do żądanego potwierdzenia, używając pola tekstowego w polu Edytuj potwierdzenie.
  4. Kliknij Zapisz i dodaj kolejne, aby utworzyć kolejne potwierdzenie, lub kliknij Zapisz potwierdzenie, aby zamknąć panele potwierdzeń.

Zrzut ekranu na rysunku 2 pokazuje tworzenie potwierdzenia „text is” (tekst to), aby sprawdzić, czy tytuł notatki to „Happy Testing!”:

Rysunek 2. Pole Edytuj potwierdzenie po wybraniu elementu View (na czerwono).

Podczas tworzenia potwierdzenia możesz nadal wchodzić w interakcje z aplikacją, nawet jeśli panele potwierdzeń są nadal otwarte w oknie Nagraj test. Espresso Test Recorder będzie rejestrować Twoje działania, ale edytowane potwierdzenie pojawi się przed tymi interakcjami po zapisaniu. Zrzut ekranu potwierdzenia zachowuje też układ, który był widoczny na urządzeniu lub emulatorze w momencie kliknięcia przycisku Dodaj potwierdzenie.

Zapisywanie nagrania

Gdy skończysz wchodzić w interakcje z aplikacją i dodawać potwierdzenia, wykonaj te czynności, aby zapisać nagranie i wygenerować test Espresso:

  1. Kliknij Zakończ nagrywanie. Pojawi się okno Wybierz nazwę klasy testowej.
  2. Espresso Test Recorder nadaje testowi unikalną nazwę w pakiecie na podstawie nazwy uruchomionego działania. Jeśli chcesz zmienić sugerowaną nazwę, użyj pola tekstowego Nazwa klasy testowej. Kliknij Zapisz.
    • Jeśli nie dodasz zależności Espresso do aplikacji, podczas próby zapisania testu pojawi się okno 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 plik zostanie automatycznie otwarty, a Android Studio wyświetli klasę testową jako wybraną w oknie Projekt w IDE.
    • Miejsce zapisania testu zależy od lokalizacji katalogu głównego testu instrumentacji testu oraz nazwy pakietu uruchomionego działania. 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ł nagrany test.

Lokalne uruchamianie testu Espresso

Aby uruchomić test Espresso, użyj okna Projekt po lewej stronie 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 instrumentacjioraz nazwy pakietu uruchomionego działania. Poniższe przykłady pokazują, gdzie test zostanie zapisany w przypadku aplikacji do testowania notatek:
    • Jeśli używasz Android widoku w oknie, przejdź do java > com.example.username.appname (androidTest).
    • Jeśli używasz widoku projektu w oknie, przejdź do src> androidTest > java > com.example.username.appname w folderze modułu.
  2. Kliknij test prawym przyciskiem myszy 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 uruchamianiu testów znajdziesz na stronie Testowanie aplikacji.
  3. W oknie Wybierz miejsce wdrożenia wybierz urządzenie na którym chcesz uruchomić test. W razie potrzeby utwórz nowe urządzenie wirtualne z Androidem (AVD). Kliknij OK.

Śledź postęp testu w oknie Uruchom u dołu IDE. Android Studio uruchamia pełną kompilację projektu i otwiera kartę z nazwą testu w oknie Uruchom (jak pokazano na rysunku 3). Na tej karcie możesz sprawdzić, czy test został zaliczony, czy nie, oraz ile czasu zajęło jego przeprowadzenie. Po zakończeniu testu na karcie pojawi się komunikat „Testy zostały zakończone”.

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

Więcej informacji o pisaniu konfiguracji uruchamiania testów znajdziesz w sekcji „Określanie konfiguracji testu dla klasy lub metody” w artykule Tworzenie i edytowanie konfiguracji uruchamiania i debugowania.

Uruchamianie testu Espresso w Laboratorium Firebase na Androida

Testy wygenerowane przez Espresso Test Recorder możesz używać w Laboratorium Firebase, aby testować aplikację w chmurze na setkach konfiguracji urządzeń. Testowanie aplikacji w Laboratorium w ramach bezpłatnego dziennego limitu w planie Sparkjest bezpłatne. Aby uruchamiać testy Espresso w Laboratorium Firebase, utwórz projekt w Firebase dla swojej aplikacji, a potem postępuj zgodnie z instrukcjami w artykule Uruchamianie testów w Laboratorium Firebase z Android Studio.

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