Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Начните с испытаний Robo

Robo test - это инструмент тестирования, интегрированный с Firebase Test Lab. Robo test анализирует структуру пользовательского интерфейса вашего приложения, а затем методично исследует ее, автоматически моделируя действия пользователя. В отличие от теста UI / Application Exerciser Monkey, тест Robo всегда имитирует одни и те же действия пользователя в одном и том же порядке, когда вы используете его для тестирования приложения на определенной конфигурации устройства с одинаковыми настройками. Это позволяет использовать Robo-тест для проверки исправлений ошибок и проверки регрессий таким способом, который невозможен при тестировании с помощью теста UI / Application Exerciser Monkey .

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

Robo test crawl stats

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

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

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

Тайм-аут теста Robo

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

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

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

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

Иногда вам нужно больше контроля над вашими тестами. Например, вы можете протестировать обычное путешествие пользователя или предоставить конкретный ввод интерфейса, например, имя пользователя и пароль. Роботские сценарии могут помочь.

С помощью скриптов Robo вы записываете себя, проходя через рабочий процесс в своем приложении, а затем загружаете эту запись в консоль Firebase для запуска в тестах Robo. Когда вы запускаете Robo-тест с присоединенным сценарием, Robo сначала выполняет предварительно подготовленные действия, а затем приступает к изучению приложения в обычном режиме.

Начните работать со скриптами Robo с помощью инструмента Firebase в Android Studio:

  1. Откройте Android Studio.
  2. В главном меню выберите Инструменты > Firebase .
  3. Выберите Test Lab и нажмите Record Robo Script и используйте его для руководства Robo Test .
  4. Выполните остальные шаги в инструменте, чтобы записать свой Robo Script.
  5. Загрузите этот Robo Script в лабораторию тестирования и начните тестирование.

Ошибки скриптов Robo

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

Robo тесты и не-Android виджеты UI

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

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

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

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

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

Вход в тестовый аккаунт и предопределенный ввод текста

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

Войти в систему

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

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

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

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

Предопределенный ввод текста

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

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

Предопределенные ошибки ввода текста

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

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

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

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

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

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

Известные проблемы

Robo test в настоящее время имеет следующие известные ограничения:

  • Поддержка фреймворка UI . Robo test совместим только с приложениями, которые используют элементы пользовательского интерфейса из структуры Android UI (включая объекты View и ViewGroup , но исключая объекты WebView ). Если вы используете Robo test для тестирования приложений, использующих другие инфраструктуры пользовательского интерфейса, включая приложения, использующие игровой движок Unity, тест может завершиться без исследования за пределами первого экрана.
  • Войдите в систему Captchas . Robo test не может обойти экраны входа в систему, которые требуют дополнительных действий пользователя помимо ввода учетных данных для входа (например, заполнение капчи).