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ć odwołania 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ń dotyczących 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ą. Potwierdzenia weryfikują 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 do sprawdzenia istnienia przycisku i zawartości notatki używa potwierdzeń.
W tej sekcji dowiesz się, jak utworzyć oba te komponenty testu za pomocą Espresso Test Recorder, a także jak zapisać gotowe nagranie, aby wygenerować test.
Nagrywanie interakcji z interfejsem
Aby rozpocząć nagrywanie testu za pomocą Espresso Test Recorder:
- Kliknij Uruchom > Nagraj test Espresso.
- W oknie Wybierz docelowe wdrożenie wybierz urządzenie na którym chcesz nagrać test. W razie potrzeby utwórz nowe urządzenie wirtualne z Androidem (AVD). Kliknij OK.
- 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, a ponieważ nie wchodzisz jeszcze w interakcje z urządzeniem, w panelu głównym będzie widoczny 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 weryfikują istnienie lub zawartość elementu View za pomocą 3 głównych typów:
- text is: sprawdza zawartość tekstową wybranego elementu View.
- exists: sprawdza, czy element View jest obecny w bieżącej hierarchii View widocznej na ekranie.
- does not exist: sprawdza, czy element View nie jest obecny w bieżącej hierarchii widoków.
Aby dodać potwierdzenie do testu:
- 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.
- Układ bieżącego ekranu pojawi się w panelu po prawej stronie okna Nagraj test. Aby wybrać element View , w 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.
- 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", 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.
- 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”, które sprawdza, 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ą otwarte w oknie Nagraj test. Espresso Test Recorder będzie rejestrować Twoje działania, ale potwierdzenie, które edytujesz, pojawi się przed tymi interakcjami po zapisaniu. Zrzut ekranu dla 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:
- Kliknij Zakończ nagrywanie. Pojawi się okno Wybierz nazwę klasy testowej.
- 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.
- 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
- 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 nagrano test.
Lokalne uruchamianie testu Espresso
Aby uruchomić test Espresso, użyj okna Projekt
po lewej stronie
IDE Android Studio:
- 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.
- 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.
- W oknie Wybierz docelowe wdrożenie wybierz urządzenie na którym chcesz uruchomić test. W razie potrzeby utwórz nowe urządzenie wirtualne z Androidem (AVD). Kliknij OK.
Postępy testu możesz śledzić 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 przeprowadzone do końca”.
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/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 Sparknie wiąże się z żadnymi opłatami. 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.