Catch up on highlights from Firebase at Google I/O 2023. Learn more

Запустить робо-скрипт

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

С помощью сценариев Robo вы записываете, как проходите рабочий процесс в своем приложении, а затем загружаете эту запись в консоль Firebase для запуска в тестах 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 test к соответствующей части приложения, где Robo test возобновляет полностью автоматизированное сканирование.
  • Переведите приложение в определенное состояние или экран, чтобы выполнить анализ, например, для анализа сообщения в приложении, политики конфиденциальности или определенного уровня игры.
  • Выполните сквозное инструментальное тестирование с возобновлением полностью автоматизированного сканирования после завершения сценария 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 и выберите Tools -> Firebase .

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

  3. Щелкните Записать скрипт Robo . Появится диалоговое окно Выбор цели развертывания.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Укажите сценарий Robo в тестовом вызове интерфейса командной строки gcloud.

Чтобы указать скрипт Robo в тестовом вызове CLI gcloud, используйте следующий флаг CLI gcloud:

--robo-script = <robo-script-path>

Замените <robo-script-path> на путь к вашему файлу сценария Robo в локальной файловой системе или в облачном хранилище с использованием нотации gs:// . Например:

gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>

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