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