Firebase Test Lab предоставляет облачную инфраструктуру для тестирования приложений Android и обеспечивает полную интеграцию с Android Studio для запуска инструментальных тестов и просмотра результатов тестов.
В этом руководстве описывается, как изменить инструментальные тесты в Android Studio, чтобы вы могли интегрировать и запускать их с помощью Test Lab. Инструкции по использованию Test Lab из пользовательского интерфейса Android Studio для создания тестовой матрицы, запуска инструментального теста и просмотра результатов теста см. в разделе Запуск тестов с помощью Firebase Test Lab .
Захват скриншотов
Test Lab поддерживает создание снимков экрана при выполнении инструментальных тестов. Чтобы узнать, как делать снимки экрана, см. раздел Добавление библиотеки снимков экрана в ваш проект .
Создание тестов с помощью регистратора тестов эспрессо
Инструмент Espresso Test Recorder позволяет создавать тесты пользовательского интерфейса для вашего приложения без написания тестового кода. Вы можете записывать свои взаимодействия с устройством и добавлять утверждения для проверки элементов пользовательского интерфейса в определенных моментальных снимках вашего приложения. Затем средство записи тестов эспрессо берет сохраненную запись и автоматически создает соответствующий тест пользовательского интерфейса эспрессо, который вы можете запустить для тестирования своего приложения в тестовой лаборатории.
Дополнительные сведения см. в разделе Создание тестов пользовательского интерфейса с помощью средства записи тестов Espresso .
Изменение поведения инструментированного теста для Test Lab
Test Lab предоставляет системную переменную, которую вы можете добавить к своим инструментальным тестам, чтобы вы могли заставить их вести себя иначе, когда вы запускаете их в Test Lab, чем когда вы запускаете их на своем собственном тестовом устройстве или эмуляторе.
В следующем примере кода считывается системное свойство firebase.test.lab
и задается для строки testLabSetting
значение true
, если тест выполняется в лаборатории тестирования. Затем он использует значение этой строки для управления выполнением дополнительных операторов:
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 // ... }
Используйте управляемые устройства Gradle через плагин Firebase Test Lab.
Управляемые устройства Gradle через плагин Firebase Test Lab позволяют запускать автоматизированные инструментальные тесты в масштабе на устройствах Test Lab на основе конфигураций в файлах Gradle вашего проекта.
Управляемые устройства Gradle также предлагают интеллектуальное сегментирование, которое позволяет оптимально распределять тесты по сегментам на основе вашей предыдущей истории тестирования. При интеллектуальном сегментировании сегменты работают примерно одинаковое время и возвращают результаты тестирования как можно быстрее. Интеллектуальное сегментирование позволяет параллельно запускать большие наборы тестов, благодаря чему эта функция хорошо подходит для потоков CI/CD.
Чтобы включить интеллектуальное сегментирование с помощью подключаемого модуля Gradle Managed Devices Test Lab, следуйте инструкциям в разделе Оптимизация выполнения тестов с помощью смарт-шардинга .