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