Robo test — это инструмент тестирования, интегрированный с Firebase Test Lab. Робо-тест анализирует структуру пользовательского интерфейса (UI) вашего приложения, а затем методично исследует его, автоматически имитируя действия пользователя. Робо-тест всегда имитирует одни и те же действия пользователя в том же порядке, когда вы используете его для тестирования приложения на определенной конфигурации устройства с теми же настройками. Этот подход к повторяемому тестированию позволяет использовать тест Robo для проверки исправлений ошибок и проверки регрессий.
Robo test записывает файлы журналов, сохраняет серию аннотированных снимков экрана, а затем создает видео из этих снимков экрана, чтобы показать вам смоделированные пользовательские операции, которые он выполнил. Эти журналы, снимки экрана и видео могут помочь вам определить основную причину сбоев приложений. Эти функции тестирования Robo также могут помочь вам найти проблемы с пользовательским интерфейсом вашего приложения.
Помимо запуска обычных тестов Robo, вы можете настраивать свои тесты с помощью скриптов Robo, которые являются функцией тестов Robo. Дополнительные сведения см. в разделе Запуск скрипта Robo .
Статистика тестового обхода робота
Чтобы помочь вам интерпретировать результаты вашего теста Robo, тест Robo записывает статистику во время каждого тестового обхода. Test Lab отображает статистику в верхней части вкладки Robo test на странице результатов теста:
Действия: общее количество действий, выполненных во время обхода, включая действия сценария робота, действия обезьяны и директивы робота.
Действия: количество различных действий, охватываемых во время обхода.
Экраны: количество отдельных экранов, посещенных во время сканирования.
Test Lab также использует статистику для создания визуального представления теста Robo в виде графика сканирования. Граф имеет экраны в качестве узлов и действия в качестве ребер. Следя за краями между экранами, вы можете получить представление о том, как тест Robo проходил ваше приложение на протяжении всего обхода.
Тайм-аут теста робота
В зависимости от сложности пользовательского интерфейса вашего приложения, тест Robo может занять пять минут или больше, чтобы выполнить полный набор взаимодействий с пользовательским интерфейсом. Мы рекомендуем установить время ожидания теста не менее 120 секунд (2 минуты) для большинства приложений и 300 секунд (5 минут) для приложений средней сложности. Значение по умолчанию для тайм-аута составляет 300 секунд (5 минут) для тестов, запускаемых из Android Studio и консоли Firebase, и 900 секунд (15 минут) для тестов, запускаемых из командной строки gcloud
.
Ошибки времени ожидания запуска приложения
Если ваше приложение запускается долго, Robo test может выдать ошибку и не сможет просканировать ваше приложение. Это происходит только в случаях очень длительного времени запуска и может быть решено только путем пересмотра вашего приложения, чтобы ускорить его запуск.
Больше контроля со скриптами Robo
Иногда вам нужно больше контроля над вашими тестами. Например, вы можете захотеть протестировать обычное путешествие пользователя или предоставить определенный ввод пользовательского интерфейса, например имя пользователя и пароль. Робо-скрипты могут помочь. Чтобы узнать больше о сценариях Robo, см. раздел Запуск сценария Robo и Справочное руководство по сценариям Robo .
Роботизированные тесты и виджеты пользовательского интерфейса не для Android
Роботизированные тесты используют Android API для непосредственного выполнения действий над виджетами пользовательского интерфейса Android. Это помогает тестам автоматически исследовать ваш пользовательский интерфейс, но также означает, что они должны иметь возможность извлекать иерархию пользовательского интерфейса Android для экрана, чтобы запускать на нем тесты.
Если экран в вашем приложении не использует виджеты пользовательского интерфейса Android, тесты Robo используют Monkey Actions для проверки этого экрана. В отличие от более методичных тестовых действий Robo, Monkey Actions просто имитируют события касания в полуслучайных местах на экране устройства.
Чтобы лучше тестировать экраны, на которых не используются виджеты пользовательского интерфейса Android, вы можете заменить произвольные нажатия в Monkey Action набором заданных по сценарию нажатий и взаимодействий с помощью тестов игровых циклов Firebase Test Lab .
Интеграция с GooglePlay
Вы можете использовать тест Robo в консоли Google Play, когда загружаете и публикуете APK-файл своего приложения, используя либо альфа-, либо бета-канал. Роботизированный тест выполняется на ряде популярных физических устройств из разных географических регионов, обеспечивая тестовое покрытие для различных форм-факторов и аппаратных конфигураций. Дополнительные сведения см. в статье Использование отчетов перед запуском для выявления проблем .
Вход в тестовую учетную запись и предопределенный ввод текста
Robo test поддерживает вход в тестовую учетную запись, а также позволяет вводить предопределенный текст в поля вашего приложения. Для пользовательского входа и другого предопределенного ввода текста тест Robo может вводить текст в поля EditText
в вашем приложении. Для каждой строки вам необходимо идентифицировать поле EditText
, используя имя ресурса Android. Чтобы узнать больше, см. Доступ к ресурсам .
Войти
В Robo test есть два взаимоисключающих метода поддержки входа:
Пользовательский вход: если вы предоставляете учетные данные тестовой учетной записи, вам нужно указать Robo test, где их вводить, а также предоставить эти учетные данные.
Автоматический вход: если в вашем приложении есть экран входа, который использует учетную запись Google для аутентификации, Robo test использует тестовую учетную запись Google, если вы не предоставите учетные данные тестовой учетной записи для пользовательского входа.
Чтобы предоставить учетные данные тестовой учетной записи для индивидуального входа, выполните следующие действия.
На странице Выбор измерений выберите Дополнительные параметры .
В разделе Учетные данные тестовой учетной записи (необязательно) введите имя пользователя и пароль, имена ресурсов, а также имя пользователя и пароль для тестовой учетной записи.
Предопределенный ввод текста
Вы можете предоставить настраиваемый текст ввода для других текстовых полей, используемых вашим приложением. Чтобы обеспечить ввод текста для дополнительных полей, выполните следующие действия:
На странице Выбор измерений выберите Дополнительные параметры .
В разделе Дополнительные поля (необязательно) введите одно или несколько имен ресурсов и строки для ввода в соответствующие текстовые поля.
Предопределенные ошибки ввода текста
Тест Robo ищет поля EditText
с именем ресурса Android, которое соответствует заданному регулярному выражению. Если Robo не может найти соответствующее поле, он не вводит ваш текст, а в остальном продолжает сканирование в обычном режиме.
Глубокие ссылки
Вы можете предоставить до трех ссылок на контент , поддерживаемых вашим приложением, для тестирования. Глубокие ссылки выдаются вашему приложению как намерения Android ACTION_VIEW
. Поэтому каждая ссылка должна соответствовать фильтру намерений в вашем приложении.
Если предоставлена одна или несколько глубоких ссылок, приложение сначала запускается в обычном режиме (с использованием намерения ACTION_MAIN
) и сканируется до указанного тайм-аута. После основного сканирования каждая глубокая ссылка сканируется дополнительно на 30 секунд каждая.
Ошибки глубоких ссылок
Если Robotest не может найти действие, соответствующее вашей ссылке на контент, Test Lab игнорирует ссылку. Проблемы с глубинными ссылками обычно являются результатом несоответствия между предоставленной глубинной ссылкой и ее определением в вашем приложении. Проверьте предоставленный URL-адрес и ваше приложение на наличие опечаток или других несоответствий.
Поддержка лицензирования приложений
Test Lab поддерживает приложения, использующие службу лицензирования приложений , предлагаемую Google Play. Чтобы успешно проверить лицензию при тестировании приложения с помощью Test Lab, вы должны опубликовать свое приложение в производственном канале в магазине Play. Чтобы протестировать приложение в альфа- или бета-канале с помощью Test Lab, удалите проверку лицензии перед загрузкой приложения в Test Lab.
Известные вопросы
В настоящее время Robo test имеет следующие известные ограничения:
- Поддержка платформы пользовательского интерфейса: тест Robo совместим только с приложениями, которые используют элементы пользовательского интерфейса из платформы пользовательского интерфейса Android (включая объекты
View
иViewGroup
, но исключая объектыWebView
). Если вы используете тест Robo для проверки приложений, использующих другие платформы пользовательского интерфейса, в том числе приложений, использующих игровой движок Unity, тест может завершиться, не выходя за пределы первого экрана. - Captcha для входа: Robo test не может обойти экраны входа, которые требуют дополнительных действий пользователя, помимо ввода учетных данных для входа, например, ввода Captcha.
Следующие шаги
- Настройте свои тесты с помощью скриптов Robo .