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

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

Как использовать 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. После установки 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).

Как создать проект Jenkins

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

Как создать проект Jenkins

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

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

Добавление контроля версий и этапов сборки Gradle

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

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

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

Подробнее о том, как настроить сборки в Jenkins…

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

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

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

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

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

    <AppFolder>/app/build/outputs/apk
    

Как добавить в Jenkins Test Lab шагов сборки

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

Как добавить шаг сборки gcloud

  1. На главной странице проекта нажмите Настроить.
  2. На странице настроек проекта прокрутите вниз до раздела Сборка и выберите Выполнить оболочку в меню Добавить этап сборки.

  3. В окне Jenkins Execute shell command введите следующее, заменив <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…

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

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