Запустите роботизированный тест (Android)

Robo Test — это инструмент тестирования, интегрированный с Firebase Test Lab . Robo Test анализирует структуру пользовательского интерфейса (UI) вашего приложения, а затем методично исследует его, автоматически имитируя действия пользователя. Robo Test всегда имитирует одни и те же действия пользователя в одном и том же порядке, когда вы используете его для тестирования приложения на конкретной конфигурации устройства с одинаковыми настройками. Такой повторяемый подход к тестированию позволяет использовать Robo Test для проверки исправлений ошибок и проверки на наличие регрессий.

Robo Test собирает файлы журналов, сохраняет серию аннотированных скриншотов, а затем создает видео из этих скриншотов, чтобы показать вам смоделированные действия пользователя, которые он выполнял. Эти журналы, скриншоты и видео могут помочь вам определить первопричину сбоев приложения. Функции Robo Test также могут помочь вам найти проблемы с пользовательским интерфейсом вашего приложения.

Помимо запуска стандартных тестов Robo, вы можете настраивать свои тесты с помощью скриптов Robo, которые являются одной из функций тестов Robo. Для получения дополнительной информации см. раздел «Запуск скрипта Robo» .

Если вы хотите попробовать бета-версию Robo для iOS+, см. раздел «Запуск теста Robo» .

Статистика тестирования робота-сканера

Чтобы помочь вам интерпретировать результаты тестирования Robo, программа записывает статистику во время каждого сеанса тестирования. Test Lab отображает статистику в верхней части вкладки «Тестирование Robo» на странице результатов тестирования:

  • Действия: Общее количество действий, выполненных во время сканирования, включая действия скриптов Robo, действия обезьян и директивы Robo.

  • Виды деятельности: Количество различных видов деятельности, охватываемых во время обхода.

  • Экраны: Количество различных экранов, посещенных во время сканирования.

Test Lab также использует статистику для создания визуального представления результатов роботизированного тестирования в виде графа обхода. Граф имеет экраны в качестве узлов и действия в качестве ребер. Следуя по ребрам между экранами, можно получить представление о том, как роботизированное тестирование перемещалось по вашему приложению на протяжении всего процесса обхода.

Таймаут теста робота

В зависимости от сложности пользовательского интерфейса вашего приложения, Robo Test может потребоваться пять минут или больше для выполнения полного набора взаимодействий с интерфейсом. Мы рекомендуем установить время ожидания теста не менее 120 секунд (2 минут) для большинства приложений и 300 секунд (5 минут) для приложений средней сложности. Значение по умолчанию для времени ожидания составляет 300 секунд (5 минут) для тестов, запускаемых из Android Studio и консоли Firebase , и 900 секунд (15 минут) для тестов, запускаемых из командной строки gcloud .

Ошибки тайм-аута при запуске приложения

Если ваше приложение долго запускается, Robo Test может выдать ошибку и не сможет его просканировать. Это происходит только в случаях чрезвычайно длительного времени запуска и может быть решено только путем доработки приложения для ускорения его запуска.

Больше контроля с помощью скриптов Robo.

Иногда вам требуется больший контроль над тестами. Например, вы можете захотеть протестировать типичный сценарий взаимодействия пользователя или предоставить определенный ввод данных в пользовательский интерфейс, такой как имя пользователя и пароль. В этом могут помочь скрипты Robo. Чтобы узнать больше о скриптах Robo, см. разделы «Запуск скрипта Robo» и «Справочник по скриптам Robo» .

Роботизированные тесты и виджеты пользовательского интерфейса, не относящиеся к Android.

Роботизированные тесты используют API Android для непосредственного выполнения действий над виджетами пользовательского интерфейса Android. Это помогает тестам автоматически исследовать ваш пользовательский интерфейс, но также означает, что им необходимо уметь извлекать иерархию пользовательского интерфейса Android для экрана, чтобы запускать на нем тесты.

Если на каком-либо экране вашего приложения не используются виджеты пользовательского интерфейса Android, Robo-тесты используют Monkey Actions для проверки этого экрана. В отличие от более методичных действий Robo-тестирования, Monkey Actions просто имитируют события касания в полуслучайных местах на экране устройства.

Для более эффективного тестирования экранов, не использующих виджеты пользовательского интерфейса Android, вы можете заменить произвольные нажатия в Monkey Action набором скриптовых нажатий и взаимодействий с помощью тестов игрового цикла Firebase Test Lab .

Интеграция с Google Play

Вы можете использовать Robo Test в Google Play Console при загрузке и публикации APK-файла вашего приложения, используя альфа- или бета-канал. Robo Test работает на наборе популярных физических устройств из разных географических регионов, обеспечивая тестовое покрытие для различных форм-факторов и конфигураций оборудования. Для получения дополнительной информации см. раздел «Использование отчетов перед запуском для выявления проблем» .

Тестовый вход в учетную запись и предопределенный текстовый ввод.

Robo test поддерживает вход в тестовую учетную запись, а также позволяет вводить предопределенный текст в поля вашего приложения. Для пользовательского входа и других предопределенных текстовых полей Robo test может вводить текст в поля EditText вашего приложения. Для каждой строки необходимо идентифицировать поле EditText , используя имя ресурса Android. Для получения дополнительной информации см. раздел «Доступ к ресурсам» .

Войти

В Robo Test есть два взаимоисключающих метода для поддержки входа в систему:

  • Пользовательский вход в систему: Если вы предоставляете учетные данные тестовой учетной записи, вам необходимо указать Robo test, куда их ввести, а также предоставить эти учетные данные.

  • Автоматический вход: Если вы не укажете учетные данные тестовой учетной записи для пользовательского входа, будет использоваться автоматический вход. Robo Test может автоматически входить в приложения, созданные с использованием стандартных виджетов Android или приложений Compose, используя тестовую учетную запись Google.

Чтобы указать учетные данные тестовой учетной записи для пользовательского входа в систему, выполните следующие действия:

  1. На странице «Выбор размеров» выберите «Дополнительные параметры» .

  2. В разделе «Учетные данные тестовой учетной записи (необязательно)» введите имя пользователя и пароль ресурса, а также имя пользователя и пароль для тестовой учетной записи.

Предварительно заданное поле ввода текста

Вы можете указать собственный текст для других текстовых полей, используемых вашим приложением. Чтобы указать текст для дополнительных полей, выполните следующие действия:

  1. На странице «Выбор размеров» выберите «Дополнительные параметры» .

  2. В разделе «Дополнительные поля (необязательно)» введите одно или несколько имен ресурсов, а также строки для ввода в соответствующие текстовые поля.

Предопределенные текстовые поля ввода {:#predefined-text} ошибки

Robo Test ищет поля EditText с именем ресурса Android, соответствующим заданному регулярному выражению. Если Robo не находит соответствующее поле, он не вводит ваш текст, но продолжает сканирование в обычном режиме.

Для тестирования вы можете предоставить до трех поддерживаемых вашим приложением прямых ссылок . Прямые ссылки отправляются в ваше приложение в виде интентов Android ACTION_VIEW . Следовательно, каждая ссылка должна соответствовать фильтру интента в вашем приложении.

Если предоставлена ​​одна или несколько прямых ссылок, приложение сначала запускается в обычном режиме (с использованием интента ACTION_MAIN ) и индексируется до истечения указанного времени ожидания. После основного индексирования каждая прямая ссылка индексируется дополнительно в течение 30 секунд.

Если Robo test не может найти активность, соответствующую вашей прямой ссылке, Test Lab игнорирует ссылку. Проблемы с прямыми ссылками обычно возникают из-за несоответствия между предоставленной прямой ссылкой и ее определением в вашем приложении. Проверьте как предоставленный URL-адрес, так и ваше приложение на наличие опечаток или других несоответствий.

Поддержка лицензирования приложений

Test Lab поддерживает приложения, использующие сервис лицензирования приложений, предоставляемый Google Play. Для успешной проверки лицензирования при тестировании вашего приложения с помощью Test Lab необходимо опубликовать приложение в производственном канале Play Store. Для тестирования приложения в альфа- или бета-канале с помощью Test Lab снимите проверку лицензирования перед загрузкой приложения в Test Lab .

Следующие шаги