Как запустить скрипт автоматизированного тестирования (Android)

В этом документе описано, как использовать робо-скрипты – тесты, которые автоматизируют ручные задачи по контролю качества мобильных приложений и позволяют применять стратегии непрерывной интеграции и тестирования перед запуском. Например, с помощью скриптов 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, выполните следующие действия:

  1. Откройте Android Studio и выберите Tools (Инструменты) > Firebase.

  2. На панели Firebase нажмите Record Robo Script and Use it to Guide Robo Test (Записать скрипт автоматизированного тестирования и использовать его для управления автоматизированным тестированием).

  3. Нажмите Записать Robo-скрипт. Появится диалоговое окно Select Deployment Target (Выбор целевого устройства).

  4. Выберите устройство, на котором хотите записать робот-скрипт.

  5. После записи робот-скрипта на устройстве сохраните файл в формате JSON в нужном месте.

  6. Откройте страницу Test Lab в консоли Firebase и загрузите файл скрипта JSON и APK-файл приложения.

  7. Нажмите кнопку Далее. Вам будет предложено выбрать устройство и уровень API. После завершения тестового скрипта Test Lab создает отчет о тестировании.

  8. Чтобы скопировать или скачать logcat отчета о тестировании и видео, нажмите Посмотреть исходные файлы.

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

Как запустить скрипт автоматизированного тестирования в Test Lab

Чтобы запустить автоматизированное тестирование в Test Lab, выполните следующие действия:

  1. Откройте страницу Test Lab в консоли Firebase.

  2. Загрузите APK-файл или набор Android App Bundle в поле APK-файл или набор Android App Bundle.

  3. Загрузите записанный или созданный вручную файл скрипта 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>

Дальнейшие действия