В этом документе описывается, как использовать сценарии 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:
Откройте Android Studio и выберите Tools -> Firebase .
На панели Firebase нажмите «Записать Robo Script» и «Использовать его для руководства Robo Test» .
Щелкните Записать скрипт Robo . Появится диалоговое окно Выбор цели развертывания.
Выберите устройство, на которое вы хотите записать Robo-скрипт.
После записи сценария Robo на устройстве сохраните файл в формате JSON в нужном месте.
Откройте страницу тестовой лаборатории в консоли Firebase и загрузите файл сценария JSON и APK приложения.
Нажмите кнопку «Продолжить» . Вам будет предложено выбрать устройство и уровень API. После завершения тестового сценария Test Lab создает отчет о тестировании.
(Необязательно) Чтобы скопировать или загрузить логарифм отчета о тестировании и видео, нажмите «Просмотреть исходные файлы» .
По умолчанию механизмы надежности скрипта Robo предотвращают его преждевременный сбой. Если вы выберете strict
режим выполнения, а скрипт Robo даст сбой в какой-либо момент, Test Lab отменит все дальнейшие шаги скрипта и возобновит обычное сканирование Robo. Чаще всего Робо-скрипты дают сбой из-за того, что Робо не может найти нужный элемент на экране. Чтобы избежать сбоев, убедитесь, что навигация в вашем приложении предсказуема и что ваши экраны отображаются в детерминированном порядке.
Запустите скрипт Robo в Test Lab
Чтобы запустить скрипт Robo в Test Lab, следуйте этим инструкциям:
Откройте страницу Test Lab в консоли Firebase.
Загрузите APK или AAB приложения в поле APK или AAB приложения .
Загрузите записанный или созданный вручную файл сценария 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>
Следующие шаги
- Чтобы узнать о структуре, возможностях, использовании и действиях Robo-скриптов, см. справочное руководство по Robo-скриптам .
- Запустите тест робота .