Narzędzie Espresso Test Recorder (Rejestrator testów Espresso) pozwala tworzyć testy interfejsu aplikacji bez konieczności pisania kodu testowego. Rejestrując scenariusz testowy, możesz rejestrować swoje interakcje z urządzeniem i dodawać asercje w celu weryfikacji elementów interfejsu w konkretnych zrzutach aplikacji. Espresso Test Recorder następnie zrobi zapisane nagranie i automatycznie wygeneruje odpowiedni test interfejsu, który możesz uruchomić w celu przetestowania aplikacji.
Dyktafon do testów Espresso zapisuje testy na podstawie platformy Espresso Testing, czyli interfejsu API w AndroidzieX Test. Interfejs Espresso API zachęca do tworzenia zwięzłych i wiarygodnych testów interfejsu na podstawie działań użytkowników. Dzięki formułowaniu oczekiwań, interakcji i asercji bez bezpośredniego dostępu do działań i widoków danych w aplikacji struktura ta zapobiega niestabilnym testom i optymalizuje szybkość wykonywania testu.
Wyłączanie animacji na urządzeniu testowym
Przed użyciem Dyktafonu do testów espresso wyłącz animacje na urządzeniu testowym, aby uniknąć nieoczekiwanych wyników. Wykonaj instrukcje konfiguracji Espresso. Pamiętaj jednak, że nie musisz ręcznie ustawiać odniesienia do zależności do biblioteki Espresso, ponieważ Rejestrator testów robi to automatycznie podczas zapisania nagrania. Te czynności należy wykonać tylko raz dla danego projektu.
Nagrywanie testu espresso
Testy espresso składają się z 2 głównych elementów: interakcji z interfejsem użytkownika i asercji elementów widoku. Interakcje w interfejsie obejmują działania polegające na kliknięciu i wpisywaniu, których użytkownik może używać, aby wchodzić w interakcje z aplikacją. Potwierdzenia służą do potwierdzenia istnienia elementów wizualnych na ekranie. Na przykład test Espresso dla aplikacji do testowania notatek może obejmować interakcje w interfejsie związane z kliknięciem przycisku i wpisaniem nowej notatki, ale używa asercji do weryfikacji istnienia przycisku i treści notatki.
W tej sekcji dowiesz się, jak utworzyć oba te składniki testowe za pomocą Dyktafonu testu espresso, a także jak zapisać gotowe nagranie, aby wygenerować test.
Rejestrowanie interakcji z interfejsem
Aby rozpocząć nagrywanie testu za pomocą rejestratora espresso, wykonaj te czynności:
- Kliknij Uruchom> Nagraj test espresso.
- W oknie Select Deployment Target (Wybierz cel wdrożenia) wybierz urządzenie, na którym chcesz zarejestrować test. Jeśli to konieczne, utwórz nowe urządzenie wirtualne z Androidem. Kliknij OK.
- Rejestrator testów Espresso aktywuje kompilację Twojego projektu, a aplikacja musi zostać zainstalowana i uruchomiona, zanim rejestrator Espresso Test umożliwi Ci interakcję z nim. Po uruchomieniu aplikacji pojawi się okno Zarejestruj test, a ponieważ nie masz jeszcze zarejestrowanej interakcji z urządzeniem, na panelu głównym pojawi się komunikat „Nie zarejestrowano jeszcze żadnych zdarzeń”. Wejdź w interakcję z urządzeniem, aby zacząć rejestrować zdarzenia, takie jak działania „dotknięcie” i „wpisanie”.
Uwaga: zanim zaczniesz rejestrować interakcje, na urządzeniu może pojawić się okno z komunikatem „Oczekiwanie na debugera” lub „Podłączanie debugera”. Dyktafon do testów espresso korzysta z debugera do rejestrowania zdarzeń interfejsu użytkownika. Po podłączeniu debugera okno zamknie się automatycznie. Nie klikaj Wymuś zamknięcie.
Zarejestrowane interakcje pojawią się w panelu głównym w oknie Zarejestruj test, jak widać na ilustracji 1 poniżej. Gdy uruchomisz test, test Espresso będzie wykonywać te działania w tej samej kolejności.
![](https://developer.android.google.cn/static/studio/images/test/espresso-test-recorder-window_2-2_2x.png?authuser=8&hl=pl)
Rysunek 1. Okno Zarejestruj test z zarejestrowanymi interakcjami z interfejsem użytkownika.
Dodaj asercje, aby weryfikować elementy interfejsu
Asercje weryfikują istnienie lub zawartość elementu View za pomocą 3 głównych typów:
- text is (tekst to): sprawdza zawartość tekstową wybranego elementu widoku.
- exists: sprawdza, czy element widoku danych znajduje się w bieżącej hierarchii widoków widocznej na ekranie.
- nie istnieje: sprawdza, czy w bieżącej hierarchii widoków nie ma elementu View.
Aby dodać asercję do testu, wykonaj te czynności:
- Kliknij Add Assertion (Dodaj potwierdzenie). Pojawi się okno Zrzut ekranu , a Espresso uzyska dostęp do hierarchii interfejsu użytkownika i innych informacji o bieżącym stanie aplikacji. Okno zostanie automatycznie zamknięte po zrobieniu zrzutu ekranu przez Espresso.
- Układ bieżącego ekranu pojawia się w panelu po prawej stronie okna Zarejestruj test. Aby wybrać element widoku, dla którego chcesz utworzyć asercję, kliknij element na zrzucie ekranu lub użyj pierwszego menu w polu Edytuj asercję u dołu okna. Wybrany obiekt widoku zostanie podświetlony w czerwonym polu.
- W drugim menu w polu Edytuj potwierdzenie wybierz asercję, której chcesz użyć. Espresso wypełnia menu prawidłowymi asercjami dla wybranego elementu widoku.
- Jeśli wybierzesz asercję „tekst to”, Espresso automatycznie wstawi tekst, który znajduje się obecnie w wybranym elemencie widoku. Możesz edytować tekst, aby pasował do odpowiedniego asercji, korzystając z pola tekstowego w polu Edytuj asercję.
- Kliknij Zapisz i dodaj kolejne, aby utworzyć kolejne potwierdzenie, lub kliknij Zapisz potwierdzenie, aby zamknąć panele potwierdzenia.
Zrzut ekranu na rys. 2 pokazuje potwierdzenie „tekst to” w celu zweryfikowania, czy tytuł notatki brzmi „Miłego testowania!”:
![](https://developer.android.google.cn/static/studio/images/test/espresso-test-recorder-assertion_2-2_2x.png?authuser=8&hl=pl)
Rysunek 2. Pole Edit assertion (Edytuj asercję) po wybraniu elementu View (kolor czerwony).
Podczas tworzenia asercji możesz kontynuować interakcję z aplikacją, nawet gdy panele asercji nadal będą otwarte w oknie Zarejestruj test. Dyktafon do testów espresso będzie nadal rejestrować Twoje działania, ale edytowane asercja pojawi się przed tymi interakcjami po ich zapisaniu. Zrzut ekranu potwierdzenia zachowuje też układ, z którego korzystało urządzenie lub emulator w momencie kliknięcia przycisku Dodaj potwierdzenie.
Zapisywanie nagrania
Po zakończeniu interakcji z aplikacją i dodaniu asercji wykonaj te czynności, aby zapisać nagranie i wygenerować test Espresso:
- Kliknij Complete record (Zakończ nagrywanie). Pojawi się okno Wybierz nazwę klasy testowej do testu.
- Dyktafon do testów espresso 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 masz dodanych do aplikacji zależności espresso, przy próbie 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 masz dodanych do aplikacji zależności espresso, przy próbie zapisania testu pojawi się okno Brakujące zależności espresso. Kliknij Tak, aby automatycznie dodać zależności do pliku
- Plik otworzy się automatycznie po wygenerowaniu go przez Espresso Test Recorder i Android Studio wyświetli klasę testową jako wybraną w oknie Project (Projekt) w IDE.
- Miejsce zapisywania testu zależy od lokalizacji katalogu głównego testu instrumentu oraz nazwy pakietu uruchomionego działania. Na przykład testy aplikacji Notes są zapisywane w folderze src> androidTest > java > com.example.username.appname w module aplikacji, w którym zarejestrowano test.
Lokalny test espresso
Aby uruchomić test Espresso, użyj okna Project po lewej stronie IDE Android Studio:
- Otwórz odpowiedni folder modułu aplikacji i przejdź do testu, który chcesz uruchomić.
Lokalizacja testu zależy od lokalizacji katalogu głównego testu instrumentu i nazwy pakietu uruchomionej aktywności. W podanych niżej przykładach pokazujemy, gdzie test zostanie zapisany w przypadku aplikacji testowej Notes:
- Jeśli korzystasz w oknie z widoku Androida, przejdź do java > com.example.username.appname (androidTest).
- Jeśli korzystasz z widoku Projekt w oknie, przejdź do src> androidTest > java > com.example.username.appname w folderze modułu.
- Kliknij test prawym przyciskiem myszy i wybierz Uruchom „testName”.
- 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.
- W oknie Wybierz cel wdrożenia wybierz urządzenie, na którym chcesz uruchomić test. Jeśli to konieczne, utwórz nowe urządzenie wirtualne z Androidem. Kliknij OK.
Postęp testu możesz monitorować w oknie Uruchom u dołu IDE. Android Studio uruchamia pełną kompilację Twojego projektu i otwiera kartę z nazwą testu w oknie Uruchom, jak widać na rysunku 3. Na tej karcie możesz sprawdzić, czy test został zaliczony czy nie, oraz jak długo trwał. Po zakończeniu testu na karcie zostanie zapisana informacja „Testy zostały uruchomione do końca”.
![](https://developer.android.google.cn/static/studio/images/test/run-window-espresso-test_2-2-preview-7_2x.png?authuser=8&hl=pl)
Rysunek 3. Przykładowe dane wyjściowe w oknie Uruchom po lokalnym przeprowadzeniu testu espresso.
Więcej informacji o pisaniu konfiguracji uruchomienia testowego znajdziesz w sekcji „Definiowanie konfiguracji testowej dla klasy lub metody” w artykule Tworzenie i edytowanie konfiguracji uruchamiania/debugowania.
Przeprowadź test Espresso w Laboratorium Firebase na Androida
Możesz użyć testów wygenerowanych przez Dyktafon do testów espresso w Laboratorium Firebase, aby przetestować swoją aplikację w chmurze na setkach konfiguracji urządzeń. Testowanie aplikacji w Laboratorium 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 i postępuj zgodnie z instrukcjami przeprowadzania testów w Laboratorium Firebase z Android Studio.
![](https://developer.android.google.cn/static/images/training/ctl-test-results.png?authuser=8&hl=pl)
Rysunek 4. Przykładowe dane wyjściowe w oknie Uruchom po przeprowadzeniu testu w Laboratorium Firebase na wielu urządzeniach.