Инструмент Espresso Test Recorder позволяет создавать UI-тесты для вашего приложения без написания тестового кода. Записывая тестовый сценарий, вы можете записывать взаимодействие с устройством и добавлять утверждения для проверки элементов пользовательского интерфейса в определённых моментальных снимках вашего приложения. Затем Espresso Test Recorder автоматически генерирует соответствующий UI-тест, который можно запустить для тестирования вашего приложения.
Espresso Test Recorder пишет тесты на основе фреймворка Espresso Testing , API в составе AndroidX Test. API Espresso позволяет создавать лаконичные и надёжные тесты пользовательского интерфейса, основанные на действиях пользователя. Формулируя ожидания, взаимодействия и утверждения без прямого доступа к действиям и представлениям базового приложения, эта структура предотвращает нестабильные тесты и оптимизирует скорость их выполнения.
Отключите анимацию на тестовом устройстве.
Перед использованием Espresso Test Recorder убедитесь, что на тестовом устройстве отключены анимации, чтобы избежать непредвиденных результатов. Следуйте инструкциям по настройке Espresso , но учтите, что вам не нужно вручную указывать ссылку на библиотеку Espresso, поскольку Test Recorder делает это автоматически при сохранении записи . Эти действия необходимо выполнить только один раз для каждого проекта.
Запишите тест эспрессо
Тесты Espresso состоят из двух основных компонентов: взаимодействия с пользовательским интерфейсом и проверки элементов View. Взаимодействия с пользовательским интерфейсом включают нажатия и ввод текста, которые пользователь может использовать для взаимодействия с вашим приложением. Утверждения проверяют наличие или содержимое визуальных элементов на экране. Например, тест Espresso для приложения Notes может включать взаимодействия с пользовательским интерфейсом для нажатия кнопки и создания новой заметки, но будет использовать проверки наличия кнопки и содержимого заметки.
В этом разделе будет рассказано, как создать оба этих тестовых компонента с помощью Espresso Test Recorder, а также как сохранить готовую запись для генерации теста.
Запись взаимодействий пользовательского интерфейса
Чтобы начать запись теста с помощью Espresso Test Recorder, выполните следующие действия:
- Нажмите Выполнить > Записать тест эспрессо .
- В окне «Выбор цели развертывания» выберите устройство, на котором вы хотите записать тест. При необходимости создайте новое виртуальное устройство Android . Нажмите «ОК» .
- Espresso Test Recorder запускает сборку вашего проекта, и приложение должно быть установлено и запущено, прежде чем Espresso Test Recorder позволит вам взаимодействовать с ним. Окно «Запись теста» появляется после запуска приложения, и, поскольку вы ещё не взаимодействовали с устройством, на главной панели отображается сообщение «События пока не записаны». Взаимодействуйте с устройством, чтобы начать регистрировать такие события, как касание и ввод текста.
Примечание : Прежде чем вы сможете начать регистрировать взаимодействия, на вашем устройстве может появиться диалоговое окно с сообщением «Ожидание отладчика» или «Подключение отладчика». Espresso Test Recorder использует отладчик для регистрации событий пользовательского интерфейса. После подключения отладчика диалоговое окно автоматически закроется; не нажимайте кнопку «Закрыть принудительно» .
Записанные взаимодействия будут отображаться на главной панели окна «Запись теста» , как показано на рисунке 1 ниже. При запуске теста Espresso попытается выполнить эти действия в том же порядке.

Рисунок 1. Окно «Запишите свой тест» с зарегистрированными взаимодействиями с пользовательским интерфейсом.
Добавьте утверждения для проверки элементов пользовательского интерфейса.
Утверждения проверяют существование или содержимое элемента View с помощью трех основных типов:
- Текст : проверяет текстовое содержимое выбранного элемента View.
- существует : проверяет, присутствует ли элемент View в текущей иерархии View, видимой на экране.
- не существует : проверяет, что элемент View отсутствует в текущей иерархии View.
Чтобы добавить утверждение в ваш тест, выполните следующие действия:
- Нажмите «Добавить утверждение» . Откроется диалоговое окно «Снимок экрана» , в котором Espresso получит иерархию пользовательского интерфейса и другую информацию о текущем состоянии приложения. Диалоговое окно автоматически закроется после того, как Espresso сделает снимок экрана.
- Макет текущего экрана отображается на панели справа от окна «Запись теста» . Чтобы выбрать элемент «Представление», для которого нужно создать утверждение, щёлкните по нему на снимке экрана или воспользуйтесь первым раскрывающимся меню в поле «Изменить утверждение » в нижней части окна. Выбранный объект «Представление» выделяется красным прямоугольником.
- Выберите нужное утверждение во втором раскрывающемся меню в поле «Изменить утверждение» . Espresso заполнит меню допустимыми утверждениями для выбранного элемента представления.
- Если вы выберете утверждение «текст равен», Espresso автоматически вставит текст, который находится внутри выбранного элемента View. Вы можете отредактировать текст в соответствии с нужным утверждением, используя текстовое поле в поле «Изменить утверждение» .
- Нажмите «Сохранить и добавить еще» , чтобы создать еще одно утверждение, или нажмите «Сохранить утверждение» , чтобы закрыть панели утверждений.
На снимке экрана на рисунке 2 показано, как создается утверждение «текст есть», чтобы проверить, что заголовок заметки — «Счастливого тестирования!»:

Рисунок 2. Поле утверждения «Изменить» после выбора элемента «Вид» (красным).
Во время создания утверждения вы можете продолжать взаимодействовать с приложением, даже если панели утверждений по-прежнему открыты в окне «Запись теста» . Espresso Test Recorder продолжит регистрировать ваши действия, но редактируемое утверждение будет отображаться перед этими взаимодействиями после сохранения. Скриншот утверждения также сохраняет макет, который был на устройстве или эмуляторе на момент нажатия кнопки «Добавить утверждение» .
Сохранить запись
После завершения взаимодействия с приложением и добавления утверждений выполните следующие шаги, чтобы сохранить запись и создать тест Espresso:
- Нажмите кнопку «Завершить запись» . Появится окно «Выберите имя класса для вашего теста» .
- Espresso Test Recorder присваивает вашему тесту уникальное имя в пределах пакета на основе имени запущенной активности. Используйте текстовое поле « Имя класса теста» , чтобы изменить предложенное имя. Нажмите «Сохранить» .
- Если вы не добавили зависимости Espresso в своё приложение, при попытке сохранить тест появится диалоговое окно « Отсутствующие зависимости Espresso» . Нажмите «Да» , чтобы автоматически добавить зависимости в файл
build.gradle.
- Если вы не добавили зависимости Espresso в своё приложение, при попытке сохранить тест появится диалоговое окно « Отсутствующие зависимости Espresso» . Нажмите «Да» , чтобы автоматически добавить зависимости в файл
- Файл автоматически открывается после того, как Espresso Test Recorder сгенерирует его, а Android Studio отображает тестовый класс, выбранный в окне проекта IDE.
- Место сохранения теста зависит от расположения корневого каталога вашего инструментария , а также от имени пакета запущенной активности. Например, тесты для приложения Notes Testing сохраняются в папке src > androidTest > java > com.example.username.appname модуля приложения, в котором был записан тест.
Проведите локальный тест эспрессо
Чтобы запустить тест «Эспрессо», используйте проект
окно в левой части Android Studio IDE:
- Откройте папку нужного модуля приложения и перейдите к тесту, который вы хотите запустить. Расположение теста зависит от расположения корневого каталога вашего инструментария и имени пакета запущенной активности. В следующих примерах показано, где будет сохранен тест для тестового приложения Notes :
- Если вы используете представление Android в окне, перейдите к java > com.example.username.appname (androidTest) .
- Если вы используете представление проекта внутри окна, перейдите к src > androidTest > java > com.example.username.appname в папке модуля.
- Щелкните правой кнопкой мыши по тесту и выберите Выполнить «testName».
- Вы также можете открыть тестовый файл и щёлкнуть правой кнопкой мыши по созданному тестовому классу или методу. Подробнее о запуске тестов читайте на странице «Тестирование приложения» .
- В окне «Выбор цели развертывания» выберите устройство, на котором вы хотите запустить тест. При необходимости создайте новое виртуальное устройство Android . Нажмите «ОК» .
Отслеживайте ход выполнения теста в окне «Выполнить» в нижней части IDE. Android Studio запускает полную сборку вашего проекта и открывает вкладку с названием теста в окне «Выполнить» , как показано на рисунке 3. На этой вкладке можно проверить, пройден ли тест, а также узнать, сколько времени заняло его выполнение. После завершения теста на вкладке появится сообщение «Тесты выполнены до завершения».

Рисунок 3. Пример вывода в окне «Выполнить» после локального запуска теста Espresso.
Дополнительные сведения о написании конфигураций тестового запуска см. в разделе «Определение тестовой конфигурации для класса или метода» в разделе Создание и редактирование конфигураций запуска/отладки .
Запустите тест Espresso с помощью Firebase Test Lab для Android
Вы можете использовать тесты, сгенерированные Espresso Test Recorder, в Firebase Test Lab для тестирования своего приложения в облаке на сотнях конфигураций устройств. Тестирование приложения в Test Lab бесплатно в рамках бесплатной ежедневной квоты тарифного плана Spark . Чтобы запустить тесты Espresso в Firebase Test Lab, создайте проект Firebase для своего приложения и следуйте инструкциям по запуску тестов в Firebase Test Lab из Android Studio.

Рисунок 4. Пример вывода в окне «Выполнить» после запуска теста с помощью Firebase Test Lab на нескольких устройствах.