Как начать тестирование с помощью систем непрерывной интеграции

Вы можете использовать Firebase Test Lab при разработке приложения с помощью любой системы непрерывной интеграции. Системы непрерывной интеграции позволяют автоматически собирать и тестировать приложение каждый раз, когда вы вносите изменения в его исходный код.

Как использовать Firebase Test Lab с Jenkins CI

В этом разделе описывается, как использовать Test Lab с Jenkins CI.

Требования

Прежде чем использовать Firebase Test Lab с Jenkins, выполните следующие действия:

  1. Настройте gcloud. Следуйте инструкциям в статье Использование Firebase Test Lab из командной строки gcloud, чтобы создать проект Firebase и настроить локальную среду SDK Google Cloud.

  2. Создайте и авторизуйте сервисный аккаунт. Сервисные аккаунты не проходят проверку на спам и не получают запросы на ввод проверочного кода, которые могут заблокировать сборки непрерывной интеграции. Создайте сервисный аккаунт с ролью Редактор в консоли Google Cloud и активируйте его. Инструкции можно найти в документации по gcloud auth activate-service-account.

  3. Включите необходимые API. Войдите в систему, используя сервисный аккаунт. На странице библиотеки API в Google Developers Console включите Google Cloud Testing API и Cloud Tool Results API. Чтобы включить эти API, введите их названия в окне поиска в верхней части консоли, а затем нажмите Включить API на обзорной странице нужного API.

Установите и настройте Jenkins

Вы можете установить и настроить Jenkins CI на Linux или Windows. Некоторые сведения в этом руководстве относятся к установке и запуску Jenkins CI в Linux, включая использование косой черты (/) в путях к файлам.

Чтобы скачать и установить Jenkins на компьютер с Linux или Windows, следуйте инструкциям. После установки Jenkins следуйте инструкциям в статье Starting and Accessing Jenkins (Запуск Jenkins и доступ к нему), чтобы завершить настройку и получить доступ к панели управления Jenkins.

Как настроить глобальные параметры безопасности

При первой установке Jenkins аутентификация пользователей и контроль доступа не настроены. Прежде чем использовать Jenkins с Firebase Test Lab, настройте глобальные параметры безопасности, чтобы обеспечить контроль доступа и аутентификацию пользователей.

Как задать глобальные настройки безопасности

  1. Перейдите на панель управления Jenkins на сервере. Для этого перейдите по адресу http://<servername>:8080, где <servername> – название компьютера, на котором установлен Jenkins.
  2. На панели управления Jenkins нажмите Manage Jenkins (Управление аккаунтом Jenkins), а затем Configure Global Security (Настройка глобальной безопасности).
  3. На странице Configure Global Security (Настройка глобальной безопасности) нажмите Enable security (Включить безопасность), а затем – Save (Сохранить).

Дополнительную информацию о настройке безопасности для Jenkins можно найти в статьях Quick and Simple Security, Standard Security Setup и Securing Jenkins.

Создайте проект Jenkins

Затем создайте проект для непрерывного интеграционного тестирования приложения с помощью Firebase Test Lab.

Чтобы создать проект Jenkins:

  1. Перейдите на панель управления Jenkins на сервере. Для этого перейдите по адресу http://<servername>:8080, где <servername> – имя компьютера, на котором установлен Jenkins.
  2. На панели управления Jenkins нажмите New Item (Новый элемент).
  3. Введите название проекта в поле Item name (Название объекта).
    • Выберите Freestyle project (Проект в свободной форме), чтобы создать проект, в котором используется одна конфигурация сборки.
    • Выберите Build multi-configuration project (Создать проект с несколькими конфигурациями), чтобы создать проект, который будет выполняться в нескольких конфигурациях сборки. Если вы планируете создавать приложение с различными конфигурациями сборки (несколько языков, несколько уровней API Android и т. д.), то лучше всего выбрать проект с несколькими конфигурациями.
  4. Нажмите Сохранить.

После создания проекта в браузере откроется его главная страница.

Добавьте шаги для контроля версий и сборки Gradle

В этом разделе описывается, как интегрировать Jenkins с системами контроля версий, такими как GitHub, и как добавить шаги сборки Gradle для создания пакетов APK из исходного кода.

Интеграция с GitHub и другими системами контроля версий

Если вы используете GitHub или другую систему контроля версий для управления исходным кодом приложения, вы можете настроить Jenkins для автоматической сборки и тестирования при каждом обновлении приложения. Вы также можете настроить Jenkins для периодического запуска сборок.

Подробнее о настройке автоматических сборок в Jenkins…

Добавление шагов сборки Gradle для пересборки пакетов APK

Если вы используете систему контроля версий для управления исходным кодом приложения, вам нужно включить этап сборки Gradle, чтобы создавать новые двоичные файлы APK каждый раз, когда Jenkins скачивает исходный код из системы контроля версий.

  1. Добавьте шаг сборки, чтобы выполнить следующие команды в основном каталоге приложения:

    ./gradlew :app:assembleDebug
    ./gradlew :app:assembleDebugAndroidTest
    

  2. Добавьте этап сборки, чтобы использовать пакеты APK, созданные Gradle, при тестировании с помощью Test Lab. Этот путь можно использовать в качестве <local_server_path> в примере сценария командной строки, приведенном ниже. <AppFolder> – это папка проекта Android Studio для вашего приложения.

    <AppFolder>/app/build/outputs/apk
    

Добавьте шаги сборки Test Lab в Jenkins

Теперь вы можете добавить в Jenkins шаг сборки, чтобы запустить Test Lab с помощью командной строки gcloud.

Чтобы добавить шаг сборки gcloud:

  1. На главной странице проекта нажмите Configure (Настроить).
  2. На странице Project configuration (Конфигурация проекта) прокрутите вниз до раздела Build (Сборка) и в меню Add build step (Добавить этап сборки) выберите Execute shell (Выполнить команду оболочки).

  3. В окне Jenkins Execute shell command (Выполнение команды оболочки Jenkins) введите следующее, заменив <local_server_path> на путь к примеру приложения на сервере, <app_apk> на APK-файл приложения, а <app_test_apk> на тестовый APK-файл приложения:

    gcloud firebase test android run --app <local_server_path>/<app_apk>.apk
    --test <local_server_path>/<app_test_apk>.apk
    

Как анализировать результаты теста

После того как Test Lab завершит тестирование приложения, вы сможете посмотреть результаты в консоли Firebase или в сегменте Google Cloud Storage в своем проекте. Вы также можете добавить команду gsutil к команде оболочки, показанной выше, чтобы скопировать данные результатов тестирования на локальный компьютер. Подробнее о том, как анализировать результаты Firebase Test Lab…

Непрерывная интеграция с другими системами непрерывной интеграции

Чтобы узнать, как использовать Firebase Test Lab с другими системами непрерывной интеграции, ознакомьтесь с их документацией: