Robo test — это инструмент тестирования, интегрированный с Firebase Test Lab . Robo test анализирует структуру пользовательского интерфейса (UI) вашего приложения, а затем методично его исследует, автоматически имитируя действия пользователя. Robo test всегда имитирует одни и те же действия пользователя в одном и том же порядке, когда вы используете его для тестирования приложения на определенной конфигурации устройства с теми же настройками. Этот подход к повторяемому тестированию позволяет использовать Robo test для проверки исправлений ошибок и тестирования на регрессии.
Тест Robo захватывает файлы журналов, сохраняет серию аннотированных снимков экрана, а затем создает видео из этих снимков экрана, чтобы показать вам смоделированные операции пользователя, которые он выполнил. Эти журналы, снимки экрана и видео могут помочь вам определить основную причину сбоев приложения. Эти функции теста Robo также могут помочь вам найти проблемы с пользовательским интерфейсом вашего приложения.
В дополнение к запуску обычных тестов Robo, вы можете настроить свои тесты с помощью скриптов Robo, которые являются функцией тестов Robo. Чтобы узнать больше, см. Запуск скрипта Robo .
Если вы хотите попробовать бета-версию Robo для iOS+, см . раздел Запуск теста Robo .
Статистика тестового сканирования робота
Чтобы помочь вам интерпретировать результаты вашего теста Robo, тест Robo записывает статистику во время каждого тестового обхода. Test Lab отображает статистику в верхней части вкладки теста Robo на странице результатов теста:
Действия: общее количество действий, выполненных во время сканирования, включая действия скрипта Robo, действия обезьяны и директивы Robo.
Действия: Количество отдельных действий, охваченных во время сканирования.
Экраны: количество отдельных экранов, посещенных во время сканирования.
Test Lab также использует статистику для создания визуального представления теста Robo в виде графика обхода. Граф имеет экраны в качестве узлов и действия в качестве ребер. Следуя по ребрам между экранами, вы можете получить представление о том, как тест Robo обошел ваше приложение в ходе обхода.
Тайм-аут теста робота
В зависимости от сложности пользовательского интерфейса вашего приложения, Robo-тест может занять пять минут или больше, чтобы завершить полный набор взаимодействий пользовательского интерфейса. Мы рекомендуем установить тайм-аут теста не менее 120 секунд (2 минуты) для большинства приложений и 300 секунд (5 минут) для приложений средней сложности. Значение тайм-аута по умолчанию составляет 300 секунд (5 минут) для тестов, запускаемых из Android Studio и консоли Firebase , и 900 секунд (15 минут) для тестов, запускаемых из командной строки gcloud
.
Ошибки тайм-аута при запуске приложения
Если ваше приложение долго запускается, Robo test может выдать ошибку и не сможет просканировать ваше приложение. Это происходит только в случаях чрезвычайно долгого запуска и может быть решено только путем пересмотра вашего приложения, чтобы оно запускалось быстрее.
Больше контроля с помощью скриптов Robo
Иногда вам нужно больше контроля над вашими тестами. Например, вы можете захотеть протестировать общий пользовательский путь или предоставить определенный ввод пользовательского интерфейса, такой как имя пользователя и пароль. Скрипты Robo могут помочь. Чтобы узнать больше о скриптах Robo, см. Запуск скрипта Robo и Справочник по скриптам Robo .
Роботизированные тесты и виджеты пользовательского интерфейса, отличные от Android
Тесты Robo используют API Android для выполнения действий непосредственно на виджетах пользовательского интерфейса Android. Это помогает тестам автоматически исследовать ваш пользовательский интерфейс, но также означает, что им необходимо извлекать иерархию пользовательского интерфейса Android для экрана, чтобы запускать на нем тесты.
Если экран в вашем приложении не использует виджеты Android UI, тесты Robo возвращаются к действиям Monkey для проверки этого экрана. В отличие от более методичных действий теста Robo, действия Monkey просто имитируют события нажатия в полуслучайных местах на экране устройства.
Чтобы лучше тестировать экраны, не использующие виджеты пользовательского интерфейса Android, вы можете заменить произвольные нажатия действия Monkey набором заскриптованных нажатий и взаимодействий с помощью тестов игрового цикла Firebase Test Lab .
Интеграция с Google Play
Вы можете использовать Robo test в Google Play Console, когда вы загружаете и публикуете APK-файл вашего приложения с помощью альфа- или бета-канала. Robo test запускается на наборе популярных физических устройств из разных географических местоположений, обеспечивая тестовое покрытие для различных форм-факторов и конфигураций оборудования. Чтобы узнать больше, см . раздел Использование отчетов перед запуском для выявления проблем .
Вход в тестовую учетную запись и ввод предопределенного текста
Robo test поддерживает вход в тестовую учетную запись, а также позволяет вводить предопределенный текст в поля вашего приложения. Для пользовательского входа и другого предопределенного ввода текста Robo test может вводить текст в поля EditText
вашего приложения. Для каждой строки вам необходимо идентифицировать поле EditText
с помощью имени ресурса Android. Чтобы узнать больше, см. Доступ к ресурсам .
Войти
Robo test имеет два взаимоисключающих метода поддержки входа:
Пользовательский вход: если вы предоставляете учетные данные тестовой учетной записи, вам необходимо указать Robo test, куда их вводить, а также предоставить эти учетные данные.
Автоматический вход: если в вашем приложении есть экран входа, использующий учетную запись Google для аутентификации, Robo test использует тестовую учетную запись Google, если только вы не предоставите учетные данные тестовой учетной записи для пользовательского входа.
Чтобы предоставить данные тестовой учетной записи для индивидуального входа, выполните следующие действия:
На странице «Выбор размеров» выберите «Дополнительные параметры» .
В разделе «Учетные данные тестовой учетной записи» (необязательно) введите имя пользователя и пароль, имена ресурсов, а также имя пользователя и пароль для тестовой учетной записи.
Предопределенный ввод текста
Вы можете предоставить пользовательский текст ввода для других текстовых полей, используемых вашим приложением. Чтобы предоставить текст ввода для дополнительных полей, выполните следующие действия:
На странице «Выбор размеров» выберите «Дополнительные параметры» .
В разделе Дополнительные поля (необязательно) введите одно или несколько названий ресурсов, а также строки для ввода в соответствующие текстовые поля.
Ошибки ввода предопределенного текста {:#predefined-text}
Тест Robo ищет поля EditText
с именем ресурса Android, которое соответствует предоставленному регулярному выражению. Если Robo не может найти соответствующее поле, он не вводит ваш текст, но в противном случае продолжает сканирование как обычно.
Глубокие ссылки
Вы можете предоставить до трех глубоких ссылок, поддерживаемых вашим приложением для тестирования. Глубокие ссылки выдаются вашему приложению как намерения Android ACTION_VIEW
. Поэтому каждая ссылка должна соответствовать фильтру намерений в вашем приложении.
Если предоставлены одна или несколько глубоких ссылок, приложение сначала запускается нормально (используя намерение ACTION_MAIN
) и сканируется до указанного тайм-аута. После основного сканирования каждая глубокая ссылка сканируется в течение дополнительных 30 секунд каждая.
Ошибки глубоких ссылок
Если Robo test не может найти активность, соответствующую вашей глубокой ссылке, Test Lab игнорирует ссылку. Проблемы с глубокой ссылкой обычно возникают из-за несоответствия между предоставленной глубокой ссылкой и ее определением в вашем приложении. Проверьте как предоставленный URL, так и ваше приложение на наличие опечаток или других несоответствий.
Поддержка лицензирования приложений
Test Lab поддерживает приложения, использующие службу лицензирования приложений, предлагаемую Google Play. Для успешной проверки лицензирования при тестировании вашего приложения с помощью Test Lab необходимо опубликовать приложение в производственном канале в магазине Play. Чтобы протестировать приложение в альфа- или бета-канале с помощью Test Lab , удалите проверку лицензирования перед загрузкой приложения в Test Lab .
Следующие шаги
- Настройте свои тесты с помощью скриптов Robo .