Интеграция с TeamCity
И нтеграция между ТестОпс и TeamCity позволяет настроить следующие связи:
- одна джоба в ТестОпс соответствует одной конфигурации сборки TeamCity,
- один запуск джобы ТестОпс соответствует одной сборке TeamCity.
Новая сборка TeamCity может быть запущена либо ТестОпс, либо самим TeamCity, при этом обе стороны отображают ее статус в своих веб-интерфейсах.
Во время выполнения тестов, плагин ТестОпс для TeamCity регулярно сканирует новые файлы в директории результатов тестов (например, “build/allure-results”, см. Allure Report → Как это работает). Для каждого нового файла плагин немного ждет (чтобы избежать загрузки наполовину записанных файлов), затем загружает файл на сервер ТестОпс. Таким образом, ТестОпс получает результаты тестов как можно скорее и может показать частичные результаты запуска еще до завершения сборочной задачи.
Чтобы включить поддержку ТестОпс на вашем сервере TeamCity:
- установите плагин для TeamCity,
- включите отправку данных из TeamCity,
- включите запуск сборок TeamCity,
- параметризируйте джобы TeamCity (если необходимо).
В настоящее время плагин для TeamCity не поддерживает установки ТестОпс с самоподписанными сертификатами.
Перед настройкой интеграции, пожалуйста, убедитесь, что вы используете правильно подписанный сертификат или рассмотрите возможность сделать ТестОпс доступным вашему серверу TeamCity через нешифрованный HTTP.
1. Установите плагин для TeamCity
Рекомендуемый метод установки плагина Allure Report — использовать функцию установки в один клик в JetBrains Marketplace. Однако, если ваша конфигурация TeamCity не имеет доступа к интернету, вы можете установить плагин, загрузив ZIP-архив в TeamCity вручную. Выбранный метод установки не влияет на функциональность плагина.
Установить из JetBrains Marketplace
-
В веб-интерфейсе TeamCity перейдите в Administration → Plugins и нажмите Browse plugins repository.
-
В появившемся диалоге нажмите Proceed.
Ваш браузер будет перенаправлен на JetBrains Marketplace.
-
В уведомлении в правом нижнем углу нажмите Proceed.
Это включит функцию установки в один клик для JetBrains Marketplace в вашем браузере.
-
Посетите страницу плагина ТестОпс в JetBrains Marketplace и нажмите Get → Install to ⟨hostname⟩.
-
Нажмите Install для подтверждения установки.
Подождите, пока плагин будет загружен и установлен.
-
Нажмите Enable uploaded plugin.
-
В появившемся диалоге нажмите Enable для подтверждения активации плагина.
Установить из файла
-
Посетите страницу плагина ТестОпс в JetBrains Marketplace и нажмите Get → Download. Сохраните ZIP-архив в локальную директорию на вашем устройстве.
-
В веб-интерфейсе TeamCity перейдите в Administration → Plugins и нажмите Upload plugin zip.
-
В появившемся диалоге выберите ZIP-архив с вашего устройства.
-
Нажмите кнопку Upload plugin zip для подтверждения установки.
Подождите, пока плагин будет загружен и установлен.
-
Нажмите Enable uploaded plugin.
-
В появившемся диалоге нажмите Enable для подтверждения активации плагина.
2. Включите отправку данных из TeamCity
Этот раздел описывает вторую часть двусторонней связи: отправку статусов джоб и результатов тестов из TeamCity обратно в ТестОпс. Для настройки этого любой пользователь ТестОпс может создать токен аутентификации и использовать его в настройках на уровне проекта в TeamCity, чтобы TeamCity мог выполнять действия с разрешениями этого пользователя. Затем необходимо установить различные другие параметры в конфигурации сборки TeamCity, которая запускает тесты.
2.1. Создайте токен в ТестОпс
-
В ТестОпс нажмите на свой аватар и перейдите в Ваш профиль.
-
В разделе API tokens нажмите Создать.
-
Введите Имя токена (например, “Токен для TeamCity”), затем нажмите Отправить.
-
В появившемся диалоге нажмите значок Копиров ать, чтобы скопировать токен в буфер обмена.
Вам понадобится этот токен на следующем шаге.
2.2. Укажите параметры сервера в TeamCity
Для проекта на Kotlin DSL см. Справочник по Kotlin DSL ниже.
-
На главной странице TeamCity перейдите на страницу вашего проекта.
-
В правом верхнем углу нажмите Edit project.
-
В меню слева нажмите Allure Servers.
(Если ссылка не видна, нажмите Show all, чтобы раск рыть ее.)
-
Нажмите Add new server.
-
В появившемся диалоге заполните поля:
- Name — имя, которое поможет вам распознать сервер ТестОпс.
- URL — URL сервера ТестОпс.
- Token — API токен, который вы получили на шаге 2.1.
- Threads count — максимальное количество потоков для загрузки файлов на сервер.
- Batch size — максимальное количество файлов для загрузки на сервер за один раз (одним потоком).
- Results depth — количество уровней подкаталогов в директории результатов тестов для сканирования и загрузки. “0” означает, что подкаталоги не будут загружены.
- Process interval — минимальный интервал (в секундах) между отправками пакетов файлов (одним потоком).
- Indexing interval — интервал (в секундах) между сканированиями директории результатов тестов.
- Delay interval — минимальный интервал (в секундах) перед загрузкой вновь созданного файла (чтобы избежать загрузки наполовину записанных файлов).
СоветПроверьте, что все правильно
Нажмите Test connection. Через несколько мгновений должно появиться сообщение “Successfully authorized as ⟨USERNAME⟩”. Нажмите OK, чтобы закрыть сообщение.
-
Нажмите Сохранить.
2.3. Измените конфигурацию сборки
Для проекта на Kotlin DSL см. Справочник по Kotlin DSL ниже.
-
На главной странице TeamCity перейдите на страницу конфигурации вашей сборки.
-
В правом верхнем углу нажмите Edit configuration.
-
В меню слева нажмите Build Features.
-
Нажмите Add build features.
-
В выпадающем списке выберите Allure: upload results.
-
Заполните поля:
- Allure Server — имя сервера, который вы добавили на шаге 2.2.
- Project ID — идентификатор проекта в ТестОпс.
- Launch name — шаблон для именования запусков тестов. Здесь вы можете использовать предопределенные параметры сборки TeamCity.
- Launch tags — список тегов, которые должны быть присвоены запуску тестов, разделенный запятыми.
- Test Results Directories — путь к директории результатов тестов, например, “build/allure-results”. Если в вашем проекте несколько директорий с результатами тестов, вы мож ете разделить их запятыми или новыми строками или использовать шаблон с подстановочными знаками, например, “modules/*/build/allure-results”.
- Index existing files — если не отмечено, плагин не будет загружать файлы, созданные до начала выполнения сборки. Это означает, что файлы, уже находящиеся в папке "allure-results" до начала работы плагина, будут проигнорированы.
- Enable full log — если отмечено, плагин будет выводить больше деталей в журнал сборки. Такой журнал может быть полезен для устранения неполадок.
-
Нажмите Сохранить.
3. Включите запуск сборок TeamCity
Интеграция с TeamCity должна быть настроена на двух уровнях.
Сначала администратор укажет URL сервера TeamCity.
Затем владелец любого проекта создаст токен в TeamCity, добавит учетные данные TeamCity в проект ТестОпс и зарегистрирует джобы в ТестОпс.
3.1. Укажите сервер TeamCity в ТестОпс
-
Войдите в ТестОпс, используя учетную запись администратора.
-
Нажмите на свой аватар и перейдите в Administration → Integrations.
-
Нажмите Add integration в правом верхнем углу страницы.
-
В появившемся диалоге выберите TeamCity.
-
Заполните поля:
- Name — имя, которое поможет вам распознать сервер TeamCity, например, “TeamCity production”.
- Endpoint — URL сервера TeamCity, например, “https://teamcity.example.com/”.
-
Если ваш сервер TeamCity использует самоподписанный SSL-сертификат, установите флажок Disable certificate validation.
-
Нажмите Add integration.
3.2. Создайте токен доступа в TeamCity
Пропустите этот шаг, если решите использовать свое имя пользователя и пароль в качестве учетных данных на следующем шаге.
-
В TeamCity, нажмите на свой аватар и перейдите в Профиль.
-
В меню слева нажмите Токены доступа.
-
Нажмите Создать токен доступа.
-
В появившемся диалоговом окне заполните поля:
- Имя токена — имя, которое поможет вам распознать токен, например, “тестопс”.
- Область разрешений — “Ограничить по проекту”.
- Проект — проект TeamCity, для которого вы настраиваете интеграцию.
- Разрешения — “Запуск сборки”, "Комментировать сборку".
-
Нажмите Создать.
-
Рядом со значением Токена нажмите значок Копировать, чтобы скопировать токен в буфер обмена.
Этот токен понадобится вам на следующем шаге.
3.3. Добавьте учетные данные TeamCity в ТестОпс
-
В ТестОпс перейдите на страницу проекта.
-
В меню слева нажмите Настройки → Интеграции.
-
В разделе Доступные интеграции найдите интеграцию TeamCity и нажмите Добавить интеграцию рядом с ней.
Появится диалог для ввода учетных данных.
-
Введите достаточные учетные данные для подключения к серверу TeamCity. Есть два способа сделать это:
-
Базовая аутентификация
На вкладке Базовая в диалоговом окне введите Имя пользователя и Пароль пользователя TeamCity.
-
Аутентификация по токену
На вкладке Токен в диалоговом окне введите Токен, который вы получили на шаге 3.2.
СоветПроверьте правильность учетных данных
Нажмите Тестировать подключение. Через несколько мгновений должно появиться сообщение “Подключение установлено”.
-
-
Нажмите Добавить интеграцию, чтобы закрыть диалог и сохранить настройки.
3.4. Добавьте новую джобу в ТестОпс
Самый простой и надежный способ создать джобу в Тес тОпс — выполнить сборку в TeamCity один раз, загрузить результаты тестов в ТестОпс и затем закрыть созданный запуск.
ТестОпс автоматически создаст задачу для конфигурации сборки в TeamCity. Затем вам нужно будет настроить атрибуты, описанные в шаге 4 в списке ручных действий для создания задачи ниже.
Создайте новую джобу вручную
-
В ТестОпс перейдите на страницу проекта.
-
В меню слева нажмите Задания.
-
Нажмите Новое задание в правом верхнем углу страницы.
-
В появившемся диалоговом окне заполните поля:
- Сервер сборки — имя сервера TeamCity, который вы добавили на шаге 3.1.
- Может запускать тесты — если отмечено, пользователи смогут запускать это задание из интерфейса Тест-кейсы.
- Задание — имя конфигурации сборки TeamCity. Обратите внимание, что вы не можете добавить одну и ту же конфигурац ию сборки в ТестОпс дважды.
- Параметры — параметры, которые должны быть переданы в TeamCity через переменные окружения, см. Окружение.
-
Нажмите Отправить.
4. Параметризация заданий TeamCity
Сборки TeamCity могут принимать параметры сборки. ТестОпс интегрирует эту функцию с собственной концепцией Окружение, что позволяет вам как задавать параметры для новых заданий, так и видеть параметры, установленные для заданий, запущенных вне ТестОпс.
Обратите внимание, что рекомендуется устанавливать одинаковые значения по умолчанию как в ТестОпс, так и в TeamCity. Это означает, что сборка TeamCity получит одно и то же окружение независимо от того, что ее запустило.
Если в репозитории вашего проекта есть несколько веток, обязательно создайте переменную окружения “Branch” в ТестОпс и передайте ее в ваше задание. Это специальное имя укажет TeamCity, какую из веток плана он должен запустить.
4.1. Установите значения по умолчанию в TeamCity
-
На главной странице TeamCity перейдите на страницу конфигурации вашей сборки.
-
В правом верхнем углу нажмите Редактировать конфигурацию.
-
В меню слева нажмите Параметры.
(Если ссылка не видна, нажмите Show all, чтобы раскрыть ее.)
-
Для каждого параметра, который вы хотите добавить, нажмите Добавить новый параметр и заполните поля:
- Имя — имя переменной.
- Тип — “Переменная окружения”. Обратите внимание, что это автоматически добавляет префикс “env.” к Имени.
- Значение — значение по умолчанию, которое должно использоваться, если не переопределено для конкретного запуска.
Нажмите Сохранить, чтобы сохранить новый параметр.
4.2. Добавьте глобальные имена параметров в ТестОпс
-
Войдите в ТестОпс с учетной записью администратора.
-
Нажмите на свой аватар и перейдите в Администрирование → Окружение.
-
Для каждого имени параметра, которое вы хотите добавить, нажмите Создать, введите имя нового параметра и нажмите Отправить.
Обратите внимание, что это имя может быть читаемой меткой и не обязательно должно совпадать с именем из шага 4.1.
4.3. Сопоставьте параметры с переменными окружения в ТестОпс
-
В ТестОпс перейдите на страницу проекта.
-
В меню слева нажмите Настройки → Окружение.
-
Для каждого имени параметра, которое вы хотите использовать:
-
Нажмите Создать, если параметра нет в списке. В противном случае нажмите значок Редактировать рядом с его именем.
-
В поле Ключ сопоставления укажите имя переменной окружения из шага 4.1.
-
В поле Переменная окружения выберите глобальное имя параметра из шага 4.2.
-