Przeprowadzanie testów w Android Studio

Laboratorium Firebase udostępnia działającą w chmurze infrastrukturę do testowania aplikacji na Androida oraz pełną integrację z Android Studio, aby przeprowadzać testy instrumentalne i sprawdzać ich wyniki.

W tym przewodniku opisujemy, jak modyfikować testy z instrumentacją w Android Studio, aby je zintegrować i przeprowadzać za pomocą Laboratorium. Instrukcje dotyczące korzystania z Laboratorium w interfejsie Androida Studio do tworzenia macierzy testów, przeprowadzania testów i wyświetlania wyników testów znajdziesz w artykule Przeprowadzanie testów w Laboratorium Firebase.

Robienie zrzutów ekranu

Laboratorium obsługuje wykonywanie zrzutów ekranu podczas testów instrumentalnych. Informacje o wykonywaniu zrzutów ekranu znajdziesz w artykule Dodawanie biblioteki zrzutów ekranu do projektu.

Twórz testy za pomocą Dyktafonu Espresso

Narzędzie Espresso Test Recorder (Rejestrator testów Espresso) pozwala tworzyć testy interfejsu aplikacji bez konieczności pisania kodu testowego. Możesz rejestrować swoje interakcje z urządzeniem i dodawać asercje w celu weryfikacji elementów interfejsu w określonych zrzutach ekranu swojej aplikacji. Dyktafon testów espresso przeprowadzi wtedy zapisane nagranie i automatycznie wygeneruje odpowiedni test interfejsu espresso, który możesz uruchomić, aby przetestować swoją aplikację w Laboratorium.

Więcej informacji znajdziesz w artykule o tworzeniu testów interfejsu za pomocą rejestratora Espresso.

Modyfikowanie zachowania testu instrumentacji na potrzeby Laboratorium

Laboratorium udostępnia zmienną systemową, którą można dodać do testów instrumentalnych. Dzięki temu można sprawić, że będą one zachowywać się inaczej, gdy uruchomisz je w Laboratorium, a inne po uruchomieniu we własnym urządzeniu testowym lub emulatorze.

Poniższy przykładowy kod odczytuje właściwość systemową (firebase.test.lab) i ustawia ciąg znaków (testLabSetting) na true, jeśli test jest uruchomiony w Laboratorium. Następnie używa wartości tego ciągu znaków, aby kontrolować, czy mają być wykonywane dodatkowe instrukcje:

Kotlin+KTX

val testLabSetting = Settings.System.getString(contentResolver, "firebase.test.lab")
if ("true" == testLabSetting) {
    // Do something when running in Test Lab
    // ...
}

Java

String testLabSetting = Settings.System.getString(getContentResolver(), "firebase.test.lab");
if ("true".equals(testLabSetting)) {
    // Do something when running in Test Lab
    // ...
}

Korzystanie z urządzeń zarządzanych przez Gradle za pomocą wtyczki Laboratorium Firebase

Urządzenia zarządzane przez Gradle dzięki wtyczce Laboratorium Firebase umożliwiają przeprowadzanie zautomatyzowanych testów instrumentalnych na dużą skalę na urządzeniach w Laboratorium na podstawie konfiguracji w plikach Gradle projektu.

Urządzenia zarządzane przez Gradle oferują też inteligentne fragmentację, która umożliwia optymalne rozłożenie testów między fragmentami na podstawie wcześniejszej historii testów. Dzięki inteligentnemu fragmentowaniu fragmenty działają przez mniej więcej tę samą długość i szybciej zwracają wyniki testu. Inteligentne fragmentowanie umożliwia uruchamianie dużych pakietów testowych równolegle, dzięki czemu ta funkcja dobrze nadaje się do przepływów CI/CD.

Aby włączyć inteligentne fragmentowanie za pomocą wtyczki Gradle Managed Devices Test Lab, postępuj zgodnie z instrukcjami podanymi w artykule Optymalizowanie uruchomień testowych przy użyciu inteligentnego fragmentacji.