Агент тестирования приложений — это инструмент для генерации, управления и выполнения тестовых сценариев, работающий на базе Gemini в Firebase . Вы определяете цели тестирования на естественном языке, а агент использует ИИ для понимания и навигации по вашему приложению, имитации взаимодействия с пользователем и предоставления подробных результатов тестирования.
Как агент тестирования приложений использует ваши данные
Агент тестирования приложений предоставляется Gemini в Firebase и регулируется теми же условиями. Дополнительную информацию об использовании ваших данных Gemini в Firebase см. в разделе «Как Gemini в Firebase использует ваши данные».
Прежде чем начать
Если вы еще этого не сделали, зарегистрируйте свое приложение в Firebase .
Если вы не используете другие продукты Firebase, вам нужно только создать проект и зарегистрировать приложение. Добавлять SDK в приложение не требуется. Однако, если вы решите использовать дополнительные продукты в будущем, обязательно выполните все шаги, описанные в разделе «Добавление Firebase с помощью консоли Firebase .
Когда вы будете готовы распространить предварительную версию своего приложения среди тестировщиков, соберите APK или AAB, используя обычный процесс, и загрузите его в App Distribution в консоли Firebase . Вам необходимо подписать APK с помощью ключа отладки или ключа подписи приложения.
Создайте тестовый пример.
Для запуска тестов с использованием ИИ агент тестирования приложений применяет ваши тестовые сценарии на естественном языке для выполнения тестов вашего приложения.
Каждый тестовый случай разбит на шаги, которые будут выполняться последовательно. Шаги позволяют разбить тестовый случай на фазы, каждая из которых имеет свои критерии успеха. Агент может совершать множество действий на каждом из этих шагов.
Для создания тестового примера откройте страницу App Distribution в консоли Firebase и выполните следующие действия:
- На вкладке «Тестовые случаи» нажмите «Создать тестовый случай» . Если вы не хотите создавать собственный тестовый случай, вы можете изменить или использовать предоставленный пример тестового случая .
- В диалоговом окне «Добавить тестовый случай» укажите имя тестового случая. Оно используется для идентификации теста, но игнорируется агентом.
- (Необязательно) Выберите тестовый случай , содержащий подготовительные шаги, которые необходимо выполнить перед основным тестом. Если предварительный тест не пройден, весь тест будет помечен как неудачный. Шаги и результаты предварительного и основного тестов будут показаны вместе в результатах теста.
- Разбейте тест на несколько этапов, нажав кнопку «Добавить еще один этап» .
- Для каждого шага задайте цель , описывающую действия, которые должен выполнить агент тестирования приложения на этом этапе.
- (Необязательно) Добавьте подсказку , которая предоставит дополнительную информацию, помогающую агенту тестирования приложений понять и использовать ваше приложение на этом этапе.
- (Необязательно) Добавьте критерии успешного завершения , чтобы помочь агенту тестирования приложений определить, когда этап успешно завершен.
- После завершения настройки теста нажмите кнопку «Сохранить» .
Пример тестового случая
Ниже приведён пример создания тестового случая с помощью агента тестирования приложений:
| Тестирование главной страницы | |
|---|---|
Название теста | Загружается главная страница |
Цель | Загрузить главную страницу |
Намекать | Пропустите все экраны предварительного ознакомления. Закройте все всплывающие окна. Не входите в систему. |
Критерии успеха | Главная страница приложения отображается на экране, все изображения загружены, ошибок не отображается. |
Провести тест
Агент тестирования приложений позволяет запускать тесты с использованием ИИ в консоли, нажав кнопку « Запустить тесты» на страницах «Релизы» или «Тестовые случаи». При этом открывается экран настройки агента тестирования приложений, где вы можете выбрать один или несколько существующих тестовых случаев для выполнения агентом. Вы также можете выбрать устройства, на которых хотите проводить тестирование, и указать, нужно ли предоставлять учетные данные для входа.
Вы также можете выбрать запуск случайного тестирования методом обхода сети , изменив тип теста. Случайные тесты методом обхода сети используют функцию автоматизированного тестирования .
Результаты тестирования можно просмотреть на странице «Релизы» во вкладке «Агент тестирования приложений» релиза. Кнопка «Просмотреть подробности» откроет диалоговое окно «Результаты тестирования» и покажет все выявленные проблемы, снимки экрана приложения и действия, предпринятые Gemini во время тестирования.
Автоматически тестируйте свои сборки
Чтобы автоматически запускать тесты агента App Testing для ваших новых сборок, например, из конвейеров CI/CD, вы можете распространять ваши сборки на агент, используя плагины Gradle или fastlane от App Distribution , или Firebase CLI.
Для использования функции агента тестирования приложений необходимо указать как минимум одно тестовое устройство и один идентификатор тестового случая. Идентификаторы тестовых случаев можно найти и загрузить на странице «Тестовые случаи» в консоли Firebase . Дополнительную информацию о начале работы с Firebase CLI и различных способах настройки распространения см. в разделе «Распространение приложений Android среди тестировщиков с помощью Firebase CLI» .
Выполните команду appdistribution:distribute , чтобы загрузить ваше приложение, и используйте следующие параметры для настройки распространения в функции агента тестирования приложений:
| appdistribution:distribute options | |
|---|---|
--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 . |
--test-username | Имя пользователя для автоматического входа в систему во время тестирования. |
--test-password или --test-password-file | Пароль для автоматического входа в систему, используемый во время тестирования. Или же вы можете указать путь к текстовому файлу, содержащему пароль: --test-password-file "/path/to/test-password.txt" |
--test-non-blocking | Запускайте тесты асинхронно. Результаты автоматического тестирования можно посмотреть в консоли Firebase. |
--test-case-ids или --test-case-ids-file | Список идентификаторов тестовых случаев, разделенных запятыми, для запуска автоматизированных тестов на основе ИИ: --test-case-ids "load-app,play-the-first-level"Или же вы можете указать путь к текстовому файлу, содержащему список идентификаторов тестовых случаев, разделенных запятыми или символами новой строки: --test-case-ids-file "/path/to/test-case-ids.txt" |
Для использования функции агента тестирования приложений необходимо указать как минимум одно тестовое устройство и один идентификатор тестового случая. Идентификаторы тестовых случаев можно найти и загрузить на странице «Тестовые случаи» в консоли Firebase . Дополнительную информацию о начале работы с Gradle и различных способах настройки распространения см. в разделе «Распространение приложений Android среди тестировщиков с помощью Gradle» .
Вы можете настроить App Distribution , добавив как минимум один раздел firebaseAppDistribution и используя следующие параметры для настройки распространения в функцию агента тестирования приложений:
| Параметры сборки App Distribution | |
|---|---|
testDevices или testDevicesFile | Тестовые устройства, на которые вы хотите распространить сборки с помощью функции агента тестирования приложений. Вы можете указать тестовые устройства в виде списка характеристик, разделенных точкой с запятой. testDevices="model=tokay, version=36, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"Или вы можете указать путь к файлу, содержащему список технических характеристик устройства, разделенных точкой с запятой: testDevicesFile="/path/to/testDevices.txt"Вы можете посмотреть доступные модели устройств, используя интерфейс командной строки gcloud . |
testUsername | Имя пользователя для автоматического входа в систему во время тестирования. |
testPassword или testPasswordFile | Пароль для автоматического входа в систему, используемый во время тестирования. Или же вы можете указать путь к текстовому файлу, содержащему пароль: testPasswordFile="/path/to/testPassword.txt" |
testNonBlocking | Запускайте тесты асинхронно. Для просмотра результатов автоматического тестирования перейдите в консоль Firebase. |
testCases или testCasesFile | Список идентификаторов тестовых случаев, разделенных запятыми, для запуска автоматизированных тестов на основе ИИ: testCases: "load-app,play-the-first-level"Или же вы можете указать путь к текстовому файлу, содержащему список идентификаторов тестовых случаев, разделенных запятыми или символами новой строки: testCasesFile: "/path/to/test-case-ids.txt" |
Для использования функции агента тестирования приложений необходимо указать как минимум одно тестовое устройство и один идентификатор тестового случая. Идентификаторы тестовых случаев можно найти и загрузить на странице «Тестовые случаи» в консоли Firebase . Дополнительную информацию о начале работы с fastlane и различных способах настройки распространения см. в разделе «Распространение приложений Android среди тестировщиков с помощью fastlane» .
В папку ./fastlane/Fastfile добавьте блок firebase_app_distribution . Используйте следующие параметры для настройки дистрибутива для функции агента тестирования приложений:
| параметры firebase_app_distribution | |
|---|---|
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 . |
test_username | Имя пользователя для автоматического входа в систему во время тестирования. |
test_password или test_password_file | Пароль для автоматического входа в систему, используемый во время тестирования. Или же вы можете указать путь к текстовому файлу, содержащему пароль: test_password_file: "/path/to/test-password.txt" |
test_non_blocking | Запускайте тесты асинхронно. Результаты автоматического тестирования можно посмотреть в консоли Firebase. |
test_case_ids или test_case_ids_file | Список идентификаторов тестовых случаев, разделенных запятыми, для запуска автоматизированных тестов на основе ИИ: test_case_ids: "load-app,play-the-first-level"Или же вы можете указать путь к текстовому файлу, содержащему список идентификаторов тестовых случаев, разделенных запятыми или символами новой строки: test_case_ids_file: "/path/to/test-case-ids.txt" |
Импорт и экспорт тестовых случаев с помощью YAML-файлов.
Импорт тестовых случаев из YAML-файлов полезен, когда вы хотите управлять тестовыми случаями вне консоли Firebase . Также может быть полезно экспортировать тестовые случаи для их перемещения между проектами. Вы можете использовать LLM для уточнения существующих тестовых случаев или создания новых. Вы можете импортировать и экспортировать тестовые случаи со страницы «Тестовые случаи» в консоли Firebase или программно с помощью Firebase CLI. Пример:
- displayName: Setup
id: setup
steps:
- goal: Log in
hint: Any username and password will work
- displayName: Smoke test
id: smoke_test
prerequisiteTestCaseId: setup
steps:
- goal: Go through the onboarding flow
hint: Tap the next button until you reach the home screen
successCriteria: The main app home page is visible
- goal: Open the settings page
hint: The settings button is in the top right corner
successCriteria: The settings page is visible
Отладьте результаты тестирования.
Если результаты вашего теста отличаются от ожидаемых, вы можете отладить его, используя переключатель «Показать представление агента» в разделе « Просмотреть подробности» на странице «Результаты теста». В представлении агента отображаются элементы на экране, которые агент тестирования приложений смог обнаружить, используя информацию о специальных возможностях приложения. Если вы хотите подробнее изучить то, что увидел агент, вы можете загрузить эту информацию из меню дополнительных действий.
Вы также можете использовать кнопку «Просмотреть артефакты» на странице результатов тестирования, чтобы просмотреть все видео, журналы и другие облачные артефакты, относящиеся к результатам вашего тестирования.
Известные проблемы и ограничения
Предварительная версия агента тестирования приложений имеет ряд известных ограничений:
- Поскольку агент тестирования приложений использует генеративный искусственный интеллект для проверки вашего приложения, он иногда будет выполнять различные действия, при этом следуя тем же инструкциям.
- Агент тестирования приложений поддерживает только следующие действия: касание, ввод текста, свайп вверх/вниз/влево/вправо, длительное нажатие, перетаскивание, возврат назад и ожидание.
- Агент тестирования приложений испытывает трудности с выполнением тестов, содержащих всего один шаг, для выполнения которого требуется множество действий. Он работает лучше, когда сложные задачи разбиваются на несколько более коротких шагов.
- Иногда агент тестирования приложения не прокручивает страницу, чтобы отобразить другие элементы за пределами экрана. Это происходит чаще, когда нет визуального подтверждения возможности прокрутки. В качестве обходного пути можно использовать поле «подсказки», чтобы предложить варианты прокрутки.
- У агента тестирования приложений иногда возникают проблемы со подсчетом, например, с выполнением действия определенное количество раз.
- Агент тестирования приложений не сможет перемещаться по вашему приложению, если включен
FLAG_SECURE. Вместо скриншотов вашего приложения он увидит только пустой экран.
квоты на тестирование
В период предварительного тестирования тесты с использованием ИИ будут предоставляться бесплатно в рамках установленного лимита квоты. По умолчанию лимит квоты составляет 200 тестов в месяц на один проект Firebase.
Обратите внимание, что если вы решите запустить несколько тестовых случаев или один и тот же тестовый случай на нескольких устройствах, это будет считаться несколькими тестами. Например, если вы запустите 2 тестовых случая на 2 устройствах, это будет считаться в общей сложности 4 тестами.
Чтобы увеличить квоту сверх установленного лимита, свяжитесь со службой поддержки Firebase , описав вашу ситуацию.