Запустите скрипт Robo (Android)

В этом документе описывается использование скриптов Robo — тестов, автоматизирующих ручные задачи обеспечения качества мобильных приложений и реализующих стратегии непрерывной интеграции (CI) и тестирования перед запуском. Например, скрипты Robo можно использовать для тестирования стандартного пользовательского пути или предоставления определённых данных пользовательского интерфейса (UI), таких как имя пользователя и пароль. Скрипты Robo являются частью Robo-теста .

С помощью скриптов Robo вы записываете свой рабочий процесс в приложении, а затем загружаете эту запись в консоль Firebase для запуска в тестах Robo. При запуске теста Robo с прикрепленным скриптом Robo сначала выполняет заранее заданные действия, а затем исследует приложение как обычно.

Скрипты Robo используют Robo-тест в качестве тестового движка. В своей простейшей форме скрипт Robo состоит из последовательности действий в пользовательском интерфейсе, таких как ввод текста «имя пользователя» и нажатие кнопки «ОК» . Скрипты Robo также могут включать такие действия, как ожидание появления элемента, нажатие в определённой точке элемента и выполнение команд оболочки Android Debug Bridge ( adb ).

Роботизированные скрипты имеют следующие преимущества по сравнению с традиционными фреймворками тестирования:

Возможность Описание
Очень прочный Роботизированные скрипты могут допускать значительные структурные и поведенческие различия между версиями приложения, а также нестабильность приложения.
Открытый После завершения выполнения скрипта Robo базовый тест Robo может взять на себя управление и продолжить тестирование приложения. Такой подход к непрерывному тестированию открывает несколько ключевых возможностей. Например, скрипт Robo можно использовать для перевода приложения в определённое состояние, выполняя настраиваемый процесс входа.
Записываемый Вам не нужно писать скрипты Robo вручную. Их можно записать с помощью инструмента записи скриптов Robo в Android Studio. Создание или изменение скриптов Robo, как правило, не требует специальных знаний в области мобильной разработки.
Гибкий Скрипты Robo могут взаимодействовать с нестандартными элементами пользовательского интерфейса, которые часто встречаются в играх.

Скрипты Robo запускаются при определённых условиях во время теста Robo, что позволяет пользователям дополнять поведение Robo — обычно для достижения большего охвата или реализации определённой функциональности. В отличие от традиционных фреймворков тестирования, скрипты Robo поддерживают следующее:

  • Различные условия срабатывания, например, активность (или неактивность) определенного имени пакета приложения или отображение определенного элемента на экране (или его отсутствие).
  • Управление выполнением, например, максимальное количество выполнений, приоритет, соответствующий этап сканирования.
  • Нестандартные типы действий (условные, игнорирование элементов, закрытие экрана).

Мы рекомендуем использовать Robo-скрипты по возможности, поскольку их поддержка не требует усилий. Например, Robo-скрипт можно использовать для следующих целей:

  • Пройдите важные рабочие процессы, чтобы добраться до сути функциональности приложения. Например, вы можете выполнить вход в систему, настроить состояние приложения после первого запуска и зарегистрировать нового пользователя.
  • Сосредоточьте Robo на определённой части приложения, чтобы максимально эффективно использовать время тестирования. Скрипт Robo направляет Robo-тест на достижение нужной части приложения, где Robo-тест возобновляет полностью автоматизированное сканирование.
  • Переведите приложение в определенное состояние или экран для выполнения анализа, например, для анализа сообщения в приложении, политики конфиденциальности или определенного уровня игры.
  • Выполните сквозное инструментальное тестирование с использованием или без использования Robo-теста, возобновив полностью автоматизированное сканирование после завершения выполнения Robo-скрипта.

Используйте расширенные функции скрипта Robo для выполнения следующих действий:

  • Выполните действия до того, как Robo начнет сканирование тестируемого приложения или после завершения сканирования, например, очистите данные тестируемого приложения перед сканированием или измените настройки устройства.
  • Измените аспекты поведения Robo во время ползания, в частности:
    • Заставьте Robo игнорировать некоторые виджеты пользовательского интерфейса или экраны приложений.
    • Предоставьте Robo пользовательское действие, которое он будет выполнять при возврате с определенного экрана.
    • Заставьте Robo выполнять определенные действия при каждом обнаружении определенного экрана приложения во время сканирования.
  • Полностью настройте, как Robo выполняет сканирование. Например, используйте комбинацию условных и безусловных действий, чтобы тестируемое приложение работало в фоновом режиме на протяжении всего сканирования, выполняя манипуляции с устройством и закрывая все всплывающие диалоговые окна, появляющиеся в процессе.

Имейте в виду, что скрипты Robo не заменяют все виды тестов. Вам по-прежнему необходимы модульные тесты для выявления низкоуровневых логических ошибок в вашем приложении; для этих тестов обычно не требуется среда Android или iOS. Мы рекомендуем дополнять тесты скриптов Robo целевыми инструментальными тестами, которые могут содержать конкретные, подробные утверждения о бизнес-логике, которые лучше всего выражаются в коде.

Запишите скрипт Robo с помощью Test Lab в Android Studio

Инструмент записи скриптов Robo в Android Studio позволяет записывать скрипты Robo, взаимодействуя напрямую с приложением на вашем устройстве. Чтобы начать работу с скриптами Robo с помощью инструмента Firebase в Android Studio, следуйте этим инструкциям:

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

  2. На панели Firebase нажмите «Записать скрипт Robo и использовать его для руководства тестом Robo» .

  3. Нажмите «Записать скрипт Robo» . Откроется диалоговое окно «Выбор цели развертывания».

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

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

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

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

  8. (Необязательно) Чтобы скопировать или загрузить лог-код отчета об испытаниях и видео, нажмите «Просмотреть исходные файлы» .

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

Запустить скрипт Robo в Test Lab

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

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

  2. Загрузите APK или AAB приложения в поле App APK или AAB .

  3. Загрузите записанный или созданный вручную файл скрипта Robo в поле «Скрипт Robo» (необязательно) .

Предоставьте сценарий Robo для локального тестового запуска Robo.

Чтобы предоставить сценарий Robo для локального тестового запуска Robo, используйте следующую опцию теста Robo:

--robo-script-file <robo-script-path>

Замените <robo-script-path> на путь к файлу скрипта Robo в локальной файловой системе. Следуйте инструкциям по локальному тестовому запуску Robo .

Укажите скрипт 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>

Следующие шаги