В этом документе описано, как использовать робо-скрипты – тесты, которые автоматизируют ручные задачи по контролю качества мобильных приложений и позволяют применять стратегии непрерывной интеграции и тестирования перед запуском. Например, с помощью скриптов Robo можно протестировать стандартный путь пользователя или ввести определенные данные в пользовательский интерфейс, такие как имя пользователя и пароль. Скрипты Robo – это функция автоматизированного тестирования.
С помощью скриптов Robo вы записываете, как вы выполняете определенные действия в приложении, а затем загружаете эту запись в консоль Firebase, чтобы использовать ее в автоматизированном тестировании. Если к автоматизированному тестированию прикреплен скрипт, робот сначала выполняет действия из этого скрипта, а затем – стандартную проверку.
В качестве механизма тестирования в скриптах Robo используется автоматизированное тестирование. В простейшем случае Robo-скрипт состоит из последовательности действий в интерфейсе, например ввести текст "имя пользователя", а затем нажать кнопку "ОК". Скрипты автоматизированного тестирования также могут включать такие действия, как ожидание появления элемента, нажатие на определенную точку внутри элемента и выполнение команд оболочки Android Debug Bridge (adb).
У робот-скриптов есть следующие преимущества по сравнению с традиционными фреймворками для тестирования:
| Возможности | Описание |
| Высокая надежность | Робо-скрипты могут выдерживать значительные структурные и поведенческие различия между версиями приложения и его нестабильностью. |
| Открытые | После завершения скрипта Robo базовое автоматизированное тестирование может продолжить проверку приложения. Такой подход позволяет реализовать несколько ключевых сценариев использования. Например, с помощью скрипта Robo можно перевести приложение в определенное состояние, выполнив специальную процедуру входа. |
| Записываемый | Вам не нужно писать код для робо-скриптов вручную. Их можно записать с помощью регистратора скриптов Robo в Android Studio. Для создания и изменения скриптов Robo обычно не требуются знания в области мобильной разработки. |
| Гибкая среда | Робо-скрипты могут взаимодействовать с ненативными элементами интерфейса, которые часто встречаются в играх. |
Скрипты Robo запускаются при определенных условиях во время автоматизированного тестирования, что позволяет пользователям расширять возможности Robo, как правило, для достижения большего охвата или нацеливания на определенные функции. В отличие от традиционных фреймворков для тестирования, Robo-скрипты поддерживают следующие возможности:
- Различные условия активации, например активность (или неактивность) определенного пакета приложения или показ (или отсутствие показа) определенного элемента на экране.
- Элементы управления выполнением, например максимальное количество выполнений, приоритет, этап сканирования.
- Нестандартные типы действий (условные, игнорирующие элементы, закрывающие экран).
Мы рекомендуем по возможности использовать робот-скрипты, поскольку их легко поддерживать. Например, с помощью Robo-скрипта можно:
- Проверьте основные рабочие процессы, чтобы понять, как работают главные функции приложения. Например, вы можете выполнить вход, настроить состояние приложения после первого запуска и зарегистрировать нового пользователя.
- Чтобы максимально эффективно использовать время автоматизированного тестирования, сосредоточьтесь на определенной части приложения. Скрипт направляет автоматизированное тестирование к нужной части приложения, после чего оно возобновляет полностью автоматическое сканирование.
- Переведите приложение в определенное состояние или откройте нужный экран, чтобы выполнить анализ, например проанализировать сообщение в приложении, политику конфиденциальности или определенный уровень игры.
- Выполните сквозной инструментальный тест с автоматизированным тестированием или без него, возобновив полностью автоматическое сканирование после завершения скрипта автоматизированного тестирования.
С помощью расширенных функций робот-скрипта можно:
- Выполнять действия до начала автоматизированного тестирования или после его завершения, например очищать данные тестируемого приложения или менять настройки устройства.
- Изменить поведение робота во время сканирования, в частности:
- Настройте игнорирование некоторых виджетов интерфейса или экранов приложения.
- Укажите настраиваемое действие, которое автоматизированное тестирование должно выполнить при возврате с определенного экрана.
- Задайте действия, которые автоматизированное тестирование должно выполнять при обнаружении определенного экрана приложения во время сканирования.
- Полностью настройте сканирование роботом. Например, вы можете использовать сочетание условных и безусловных действий, чтобы тестируемое приложение оставалось в фоновом режиме на протяжении всего сканирования, а также чтобы выполнять манипуляции с устройством и закрывать все всплывающие диалоговые окна, которые появляются в процессе.
Помните, что автоматизированное тестирование не заменяет все виды тестирования. Вам по-прежнему нужны модульные тесты, чтобы выявлять ошибки низкоуровневой логики в приложении. Обычно для таких тестов не требуется среда Android или iOS. Рекомендуем дополнять тесты Robo-скриптов целевыми инструментальными тестами, которые могут содержать конкретные подробные утверждения о бизнес-логике, лучше всего выраженные в коде.
Как записать робо-скрипт с помощью Test Lab в Android Studio
Рекордер скриптов Robo в Android Studio позволяет записывать скрипты Robo, напрямую взаимодействуя с приложением на устройстве. Чтобы начать работу со скриптами автоматизированного тестирования в Android Studio, выполните следующие действия:
Откройте Android Studio и выберите Tools (Инструменты) > Firebase.
На панели Firebase нажмите Record Robo Script and Use it to Guide Robo Test (Записать скрипт автоматизированного тестирования и использовать его для управления автоматизированным тестированием).
Нажмите Записать Robo-скрипт. Появится диалоговое окно Select Deployment Target (Выбор целевого устройства).
Выберите устройство, на котором хотите записать робот-скрипт.
После записи робот-скрипта на устройстве сохраните файл в формате JSON в нужном месте.
Откройте страницу Test Lab в консоли Firebase и загрузите файл скрипта JSON и APK-файл приложения.
Нажмите кнопку Далее. Вам будет предложено выбрать устройство и уровень API. После завершения тестового скрипта Test Lab создает отчет о тестировании.
Чтобы скопировать или скачать logcat отчета о тестировании и видео, нажмите Посмотреть исходные файлы.
По умолчанию механизмы обеспечения надежности автоматизированного тестирования предотвращают его преждевременный сбой.
Если вы выберете режим выполнения strict и робот-скрипт не сработает, Test Lab отменит все последующие шаги в скрипте и возобновит обычное автоматизированное сканирование. Чаще всего скрипты автоматизированного тестирования завершаются сбоем из-за того, что автоматизированное тестирование не может найти на экране нужный элемент. Чтобы избежать сбоев, убедитесь, что навигация в приложении предсказуема, а экраны показываются в определенном порядке.
Как запустить скрипт автоматизированного тестирования в Test Lab
Чтобы запустить автоматизированное тестирование в Test Lab, выполните следующие действия:
Откройте страницу Test Lab в консоли Firebase.
Загрузите APK-файл или набор Android App Bundle в поле APK-файл или набор Android App Bundle.
Загрузите записанный или созданный вручную файл скрипта Robo в поле Скрипт Robo (необязательно).
Как добавить скрипт Robo в локальный запуск автоматизированного тестирования
Чтобы предоставить скрипт Robo для локального автоматизированного тестирования, используйте следующий параметр:
--robo-script-file <robo-script-path>
Замените <robo-script-path> путем к файлу скрипта автоматизированного тестирования в локальной файловой системе. Следуйте инструкциям по локальному автоматизированному тестированию.
Как указать скрипт Robo при вызове теста в gcloud CLI
Чтобы указать скрипт Robo в вызове теста gcloud CLI, используйте следующий флаг gcloud CLI:
--robo-script = <robo-script-path>
Замените <robo-script-path> на путь к файлу скрипта Robo в локальной файловой системе или в Cloud Storage, используя нотацию gs://. Пример:
gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>
Дальнейшие действия
- Подробную информацию о структуре, возможностях, использовании и действиях робот-скриптов можно найти в справочном руководстве.
- Запустите автоматизированное тестирование.