Агент тестирования приложений – это агент для создания, управления и выполнения отчетов о тестировании на основе Gemini в Firebase. Вы определяете цели тестирования на естественном языке, а агент использует ИИ, чтобы понять и изучить ваше приложение, смоделировать взаимодействие с пользователем и предоставить подробные результаты тестирования.
Как агент тестирования приложений использует ваши данные
Агент тестирования приложений предоставляется Gemini в Firebase и регулируется теми же условиями. Подробнее о том, как Gemini в Firebase использует ваши данные…Firebase
Подготовка
Если вы ещё этого не сделали, зарегистрируйте приложение в Firebase.
Если вы не используете другие продукты Firebase, вам нужно только создать проект и зарегистрировать приложение. Добавлять SDK в приложение не требуется. Однако если вы решите использовать дополнительные продукты в будущем, обязательно выполните все шаги, описанные в статье Как добавить Firebase с помощью консоли Firebase.
Как создать тестовый пример
Чтобы запустить тестирование под управлением ИИ, агент тестирования приложений использует ваши отчеты о тестировании на естественном языке.
Каждый тестовый сценарий разбит на шаги, которые будут выполняться последовательно. Шаги позволяют разбить тестовый пример на фазы, каждая из которых имеет свое собственное утверждение. На каждом шаге агент может выполнять множество действий.
Создать отчет о тестировании можно двумя способами: с помощью файла YAML или консоли Firebase. Файлы YAML позволяют самостоятельно управлять тестовыми примерами, обычно в репозитории исходного кода с версиями. Вы также можете хранить отчеты о тестировании в консоли Firebase вместе с данными App Distribution.
Использование файлов YAML
В примере ниже показан файл YAML, в котором определены два тестовых сценария:
tests:
- displayName: Login as guest
id: login-as-guest
steps:
- goal: Log in as a guest
finalScreenAssertion: The home screen is visible
- displayName: View biography card birth date
prerequisiteTestCaseId: login-as-guest
steps:
- goal: Open the article on "Bob Dylan"
hint: Use the search function to find it
finalScreenAssertion: >-
The article is opened and the title "Bob Dylan" is visible.
- goal: Find Bob Dylan's birthday in the article
hint: >-
Look for the "Born" section in the infobox on the right side of the page.
finalScreenAssertion: >-
The text "May 24, 1941" is visible on the screen.
Вы можете объединять группы тестов в одном файле и разделять эти наборы тестов по нескольким файлам. Чтобы добавить предварительный тест, добавьте к нему идентификатор, а затем сошлитесь на этот идентификатор с помощью prerequisiteTestCaseId.
Использование консоли App Distribution
Вы также можете создавать тестовые сценарии и управлять ими в консоли Firebase. Чтобы создать тестовый сценарий, откройте страницу App Distribution в консоли Firebase и выполните следующие действия:
- На вкладке Тестовые сценарии нажмите Новый тестовый сценарий. Если вы не хотите создавать собственный отчет о тестировании, вы можете изменить или использовать предоставленный пример отчета о тестировании.
- В диалоговом окне Добавить тестовый пример укажите название тестового примера. Это значение используется для идентификации теста, но игнорируется агентом.
- При необходимости выберите Предварительный тестовый сценарий, который содержит шаги настройки, выполняемые перед основным тестом. Если предварительный тест не пройден, весь тест будет помечен как неудачный. Шаги и результаты предварительного и основного тестов будут показаны вместе в результатах тестирования.
- Вы можете разбить тест на несколько шагов, нажав кнопку Добавить ещё один шаг.
- Для каждого шага укажите цель, которая описывает, что агент тестирования приложений должен делать на этом шаге.
- При необходимости добавьте подсказку, чтобы агенту тестирования приложений было проще понять, что происходит на этом шаге, и выполнить навигацию.
- Добавьте утверждение для конечного экрана, чтобы помочь агенту тестирования приложений определить, когда шаг был успешно завершен. Это утверждение должно относиться только к тому, что видно на экране.
- Нажмите Сохранить.
Пример тестового сценария
Ниже приведен пример создания отчета о тестировании с помощью агента тестирования приложений.
Название теста |
Загрузка главной страницы |
Цель |
Загрузить главную страницу |
Подсказка |
Пропустите экраны с инструкциями. Закройте все всплывающие окна. Не входить. |
Утверждение на последнем экране |
На экране видна главная страница приложения, все изображения загружены, ошибок нет. |
Запустить тестирование
Способ запуска тестов зависит от того, как вы создаете отчеты о тестировании и управляете ими. Если вы определяете тестовые сценарии с помощью файлов YAML, то будете запускать эти тесты с помощью интерфейса командной строки Firebase. Если вы создаете отчеты о тестировании в консоли App Distribution, то сможете запускать их в ней или с помощью одного из инструментов CLI App Distribution.
Использование файлов YAML
Отчеты о тестировании, определенные в файлах YAML, можно выполнять с помощью интерфейса командной строки Firebase.
- Установите или обновите до последней версии интерфейс командной строки Firebase. Рекомендуем скачать отдельный двоичный файл для CLI, соответствующий вашей ОС.
- Войдите в аккаунт и проверьте, есть ли у вас доступ к проектам. Если вы используете интерфейс командной строки Firebase в среде непрерывной интеграции, то можете выполнить аутентификацию с помощью сервисного аккаунта или команды login:ci.
Выполните команду
apptesting:execute. Пример:firebase apptesting:execute \ --app=1:1234567890:android:0a1b2c3d4e5f67890 \ --test-dir=./mytests \ ./app/build/outputs/apk/debug/app-debug.apk
| apptesting:execute [options] [/path/to/app/binary] | |
|---|---|
--app
|
Обязательно: идентификатор приложения Firebase. Идентификатор приложения можно найти в консоли Firebase на странице Общие настройки.
|
--test-dir
|
Путь к каталогу, содержащему YAML-файлы тестовых сценариев. Команда будет выполнять рекурсивный поиск в этом каталоге, поэтому файлы можно упорядочить по подкаталогам. Если значение не задано, по умолчанию используется "./tests". |
--test-devices или --test-devices-file
|
Устройства, на которых будут выполняться тесты. Вы можете указать тестовые устройства в виде списка характеристик, разделенных точкой с запятой: --test-devices
"model=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
Вы также можете указать путь к файлу обычного текста, содержащему список характеристик устройств, разделенных точкой с запятой: --test-devices-file
"/path/to/test-devices.txt" Посмотреть доступные модели устройств можно с помощью gcloud CLI. |
--test-username
|
Имя пользователя для автоматического входа, которое будет использоваться во время тестирования. |
--test-password или --test-password-file
|
Пароль для автоматического входа, который будет использоваться во время тестирования. Вы также можете указать путь к текстовому файлу, содержащему пароль: --test-password-file: "/path/to/test-password.txt"
|
--test-non-blocking
|
Если этот параметр задан, команда запустит тесты и сразу же вернет управление, не дожидаясь их завершения. Чтобы посмотреть результаты тестирования, откройте консоль Firebase. Если этот флаг не установлен, команда будет заблокирована до завершения тестов и завершится с кодом ошибки, если какой-либо из тестов не пройден. |
--results-bucket
|
Специальный сегмент Google Cloud Storage (GCS), в котором хранятся результаты тестирования. Если оставить поле пустым, будет использоваться сегмент по умолчанию. Сегмент должен принадлежать проекту, для которого включена оплата. При указании сегмента взимается плата за используемое хранилище. |
--test-file-pattern
|
Шаблон регулярного выражения. Будут выполнены только тесты, содержащиеся в файлах, соответствующих этому шаблону. |
--test-name-pattern
|
Шаблон регулярного выражения. Будут выполнены только тесты с отображаемыми названиями, соответствующими этому шаблону. |
/path/to/app/binary
|
Необязательно. Путь к двоичному файлу приложения. Если этот параметр не указан, агент будет использовать последний выпуск, загруженный в App Distribution для указанного приложения. |
Использование консоли App Distribution
Чтобы запустить отчеты о тестировании, хранящиеся в App Distribution, вы можете использовать консоль Firebase, интерфейс командной строки Firebase или плагины Gradle или fastlane для App Distribution.
Как импортировать и экспортировать тестовые случаи с помощью YAML-файлов
Импорт тестовых сценариев из файлов YAML полезен, когда вы хотите управлять тестовыми сценариями за пределами консоли Firebase. Также может быть полезно экспортировать тестовые сценарии для перемещения их между проектами. Вы можете использовать LLM для уточнения существующих тестовых случаев или создания новых. Вы можете импортировать и экспортировать тестовые сценарии на странице Test Cases (Тестовые сценарии) в консоли Firebase или программно с помощью интерфейса командной строки Firebase. Пример отчета о тестировании YAML приведен в разделе Как создать отчет о тестировании YAML.
Как посмотреть результаты тестирования
Результаты тестирования можно посмотреть на странице Выпуски на вкладке Агент тестирования приложений. Нажмите кнопку Подробнее, чтобы открыть диалоговое окно с результатами тестирования. В нем вы увидите список проблем, скриншоты приложения и действия, которые Gemini выполнял во время тестирования.
Если в тесте есть повторные действия, вы можете посмотреть исходный запуск теста под управлением ИИ или очистить кеш.
В таблице ниже приведены подробные сведения о результатах тестирования.
| Значок | Имя | Описание |
|---|---|---|
| Spark | Действие ИИ | Указывает, что агент тестирования приложений использовал Gemini, чтобы принять решение о выполнении действия или завершении шага. |
| replay | Действие повторено | Указывает, что агент тестирования приложений повторил действие из предыдущего успешного запуска теста. |
| Spark | Утверждение ИИ | Указывает, что агент тестирования приложений использовал Gemini для проверки утверждения на конечном экране после повторного выполнения действий из предыдущего успешного запуска того же теста. |
Отладка результатов тестирования
Если результаты тестирования отличаются от ожидаемых, вы можете выполнить отладку теста, используя переключатель Показать представление агента в разделе Подробнее на странице результатов тестирования. В режиме агента показаны элементы на экране, которые агент тестирования приложений смог обнаружить, используя информацию о специальных возможностях приложения. Если вы хотите подробнее изучить, что видел агент, вы можете скачать эту информацию из дополнительного меню.
Вы также можете нажать кнопку Посмотреть артефакты на странице результатов тестирования, чтобы увидеть все видео, журналы и другие артефакты Cloud.
Известные проблемы и ограничения
У предварительной версии агента тестирования приложений есть некоторые ограничения:
- Тесты с ИИ-подсказками имеют ограничение по времени в 5 минут. Если тест не завершится успешно в течение этого времени, он будет остановлен и помечен как неудачный.
- Поскольку агент тестирования приложений использует генеративный искусственный интеллект для тестирования вашего приложения, он может выполнять разные действия, следуя одним и тем же инструкциям.
- Агент тестирования приложений поддерживает только следующие действия: нажатие, ввод текста, пролистывание вверх, вниз, влево и вправо, долгое нажатие, перетаскивание, возврат и ожидание.
- Агенту тестирования приложений сложно выполнять тесты, содержащие только один шаг, для которого требуется много действий. Он работает лучше, если сложные задачи разбиты на несколько более коротких шагов.
- Иногда агент тестирования приложений не прокручивает экран, чтобы показать другие элементы. Это происходит чаще, если нет визуального указания на возможность прокрутки. В качестве временного решения можно использовать поле hints, чтобы предложить прокрутку.
- Агенту тестирования приложений иногда сложно считать, например выполнять действие определенное количество раз.
- Агент тестирования приложений не может перемещаться по приложению, если включен параметр
FLAG_SECURE. Вместо скриншотов вашего приложения будет виден только пустой экран.
Квоты на тестирование
В период предварительного доступа тестирование с помощью ИИ будет бесплатным в рамках квоты. По умолчанию лимит составляет 200 тестов в месяц на проект Firebase.
Обратите внимание, что если вы решите запустить несколько тестовых сценариев или один и тот же сценарий на нескольких устройствах, это будет считаться несколькими тестами. Например, если вы запустите два теста на двух устройствах, это будет считаться как четыре теста.
Чтобы увеличить квоту, обратитесь в службу поддержки Firebase и опишите свой сценарий использования.