Catch up on everthing we announced at this year's Firebase Summit. Learn more

Начните с робо-тестов

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

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

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

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

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

Test Lab также использует статистику для создания визуального представления робо-обхода в виде графика обхода. Граф имеет экраны в качестве узлов и действий в качестве ребер. Следуя краям между экранами, вы можете понять, как 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. Выберите Lab Test и нажмите Record Robo Script и использовать его в руководстве Robo Test.
  4. Следуйте остальным шагам в инструменте, чтобы записать свой робот-скрипт.
  5. Загрузите этот робот-скрипт в Test Lab и начните тест.

Ошибки робо скрипта

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

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

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

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

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

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

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

Проверка входа в учетную запись и предопределенного ввода текста

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

Войти

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Известные вопросы

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

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