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

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

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

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

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

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

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

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

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

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

  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-script-file <robo-script-path>

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

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

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

--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>

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