Автоматизированное тестирование – это инструмент тестирования, интегрированный с Firebase Test Lab. Автоматизированное тестирование анализирует структуру пользовательского интерфейса приложения, а затем методично изучает его, автоматически имитируя действия пользователя. При автоматизированном тестировании приложения на устройстве с определенной конфигурацией и настройками робот всегда выполняет одни и те же действия пользователя в одном и том же порядке. Этот повторяемый подход к тестированию позволяет использовать автоматизированное тестирование для проверки исправлений ошибок и регрессий.
В ходе тестирования Robo записывает файлы журналов, сохраняет серию скриншотов с аннотациями, а затем создает из них видео, чтобы показать вам смоделированные действия пользователя. Эти журналы, скриншоты и видео помогут вам определить основную причину сбоев в приложении. Эти функции автоматизированного тестирования также могут помочь вам найти проблемы с интерфейсом приложения.
Помимо обычных тестов Robo, вы можете настраивать их с помощью скриптов Robo. Подробнее о том, как запустить скрипт Robo…
Если вы хотите попробовать бета-версию Robo для iOS+, ознакомьтесь с разделом Как запустить тестирование с помощью Robo.
Статистика сканирования при автоматизированном тестировании
Чтобы вам было проще интерпретировать результаты автоматизированного тестирования, оно записывает статистику во время каждого сканирования. Test Lab В верхней части вкладки "Автоматизированное тестирование" на странице результатов тестирования показывается следующая статистика:
Действия. Общее количество действий, выполненных во время сканирования, включая действия скрипта Robo, действия обезьяны и директивы Robo.
Действия – количество уникальных действий, выполненных во время сканирования.
Экраны – количество уникальных экранов, посещенных во время сканирования.
Test Lab также использует статистику для создания визуального представления автоматизированного тестирования в виде графика сканирования. В графе экраны являются узлами, а действия – ребрами. По границам между экранами можно понять, как робот перемещался по приложению во время сканирования.
Время тестирования Robo истекло
В зависимости от сложности интерфейса приложения автоматизированное тестирование может занять пять минут или больше. Для большинства приложений мы рекомендуем установить время ожидания тестирования не менее 120 секунд (2 минуты), а для приложений средней сложности – 300 секунд (5 минут). По умолчанию для тестов, запущенных из Android Studio и консоли Firebase, время ожидания составляет 300 секунд (5 минут), а для тестов, запущенных из командной строки gcloud, – 900 секунд (15 минут).
Ошибки при запуске приложений из-за истечения времени ожидания
Если приложение запускается слишком долго, при тестировании с помощью робота может возникнуть ошибка, и робот не сможет просканировать приложение. Это происходит только в случаях, когда приложение запускается очень долго. Чтобы устранить проблему, нужно ускорить запуск приложения.
Больше возможностей с помощью скриптов Robo
Иногда вам может потребоваться больше контроля над тестированием. Например, вы можете протестировать распространенный путь пользователя или указать определенные входные данные интерфейса, такие как имя пользователя и пароль. В этом вам помогут скрипты Robo. Подробнее о запуске скриптов автоматизированного тестирования и справочном руководстве по скриптам автоматизированного тестирования…
Robo-тесты и виджеты интерфейса, не относящиеся к Android
При тестировании Robo используются API Android, чтобы выполнять действия непосредственно с виджетами интерфейса Android. Это позволяет тестам автоматически изучать интерфейс, но также означает, что для выполнения тестов на экране необходимо извлечь иерархию интерфейса Android.
Если на экране приложения не используются виджеты интерфейса Android, для тестирования этого экрана Robo использует действия Monkey. В отличие от более методичных действий Robo, Monkey Actions просто имитируют нажатия в полуслучайных местах на экране устройства.
Чтобы лучше тестировать экраны, на которых не используются виджеты интерфейса Android, вы можете заменить произвольные нажатия Monkey Action на набор запрограммированных нажатий и взаимодействий с помощью Firebase Test Labтестов игрового цикла.
Интеграция с Google Play
Вы можете использовать Robo-тестирование в Google Play Console, когда загружаете и публикуете APK-файл приложения, используя альфа- или бета-канал. Автоматизированное тестирование проводится на наборе популярных физических устройств из разных географических местоположений, что позволяет охватить различные типы устройств и конфигурации оборудования. Подробнее о том, как выявлять проблемы с помощью отчетов о тестировании…
Тестирование входа в аккаунт и ввода заранее заданного текста
Автоматизированное тестирование поддерживает вход с тестовым аккаунтом, а также позволяет вводить в поля приложения заранее заданный текст. Для входа с пользовательскими учетными данными и ввода другого заранее заданного текста автоматизированное тестирование может вводить текст в поля EditText в приложении. Для каждой строки необходимо указать поле EditText, используя название ресурса Android. Подробнее о доступе к ресурсам…
Вход
В автоматизированном тестировании поддерживаются два взаимоисключающих метода входа:
Специальный вход. Если вы предоставите учетные данные тестового аккаунта, вам нужно будет указать, куда их вводить автоматизированному тестированию, и предоставить сами учетные данные.
Автоматический вход. Если вы не предоставите учетные данные тестового аккаунта для входа, будет использоваться автоматический вход. Роботест может автоматически входить в приложения, созданные с помощью стандартных виджетов Android или Compose, используя тестовый аккаунт Google.
Чтобы предоставить учетные данные тестового аккаунта для специального входа, выполните следующие действия:
На странице Выберите параметры нажмите Дополнительные параметры.
В разделе Учетные данные тестового аккаунта (необязательно) укажите имена ресурсов для имени пользователя и пароля, а также имя пользователя и пароль для тестового аккаунта.
Ввод заранее заданного текста
Вы можете указать собственный текст для других текстовых полей, используемых в приложении. Чтобы добавить текст в дополнительные поля, выполните следующие действия:
На странице Выберите параметры нажмите Дополнительные параметры.
В разделе Дополнительные поля (необязательно) введите одно или несколько названий ресурсов и строки, которые нужно добавить в соответствующие текстовые поля.
Ошибки при вводе стандартного текста {:#predefined-text}
Автоматизированное тестирование ищет поля EditText с названием ресурса Android, которое соответствует заданному регулярному выражению. Если Robo не найдет подходящее поле, он не введет текст, но продолжит сканирование как обычно.
Ссылки на контент
Вы можете указать до трех ссылок на контент, поддерживаемых вашим приложением.
Ссылки на контент передаются в приложение в виде намерений Android ACTION_VIEW. Поэтому каждая ссылка должна соответствовать фильтру интентов в приложении.
Если указана одна или несколько ссылок на контент, приложение сначала запускается обычным образом (с помощью намерения ACTION_MAIN) и сканируется до истечения заданного времени ожидания. После основного сканирования каждая ссылка на контент сканируется ещё 30 секунд.
Ошибки ссылок на контент
Если автоматизированное тестирование не может найти действие, соответствующее ссылке на контент, Test Labигнорирует ее. Проблемы со ссылками на контент обычно возникают из-за несоответствия между предоставленной ссылкой и ее определением в приложении. Проверьте URL и приложение на наличие опечаток и других несовпадений.
Поддержка лицензирования приложений
Test Lab поддерживает приложения, в которых используется сервис Лицензирование приложений, предлагаемый Google Play. Чтобы успешно проверить лицензию при тестировании приложения с помощью Test Lab, опубликуйте его в основном канале в Google Play. Чтобы протестировать приложение на альфа- или бета-канале с помощью Test Lab, удалите проверку лицензии перед загрузкой приложения в Test Lab.
Дальнейшие действия
- Настройте тестирование с помощью скриптов Robo.