Skip to content

Интеграция с Jenkins ​

Интеграция с Jenkins позволяет:

  • запускать джобу Jenkins из интерфейса ТестОпс через запуск джобы ТестОпс;
  • автоматически передавать результаты тестов из сборки (запуска джобы) Jenkins в ТестОпс с помощью плагина;
  • синхронизировать статус запуска джобы сразу в обеих системах — ТестОпс и Jenkins.

В настроенной интеграции одна джоба ТестОпс соответствует одной джобе Jenkins, а один запуск джобы ТестОпс — одной сборке Jenkins.

Примечание

Чтобы настроить или удалить любую интеграцию ТестОпс с внешней системой, необходима глобальная роль «Администратор» в инстансе ТестОпс и, как правило, права администратора инстанса внешней системы.

Настройка интеграции и подключений с Jenkins ​

Чтобы настроить интеграцию с Jenkins:

  1. Настройте связь от ТестОпс к Jenkins:

    1. Создайте API-токен в Jenkins.
    2. Подключите интеграцию с Jenkins на уровне инстанса ТестОпс.
    3. Добавьте настроенное подключение к Jenkins в проект ТестОпс.
  2. Настройте связь от Jenkins к ТестОпс:

    1. Создайте API-токен в ТестОпс.
    2. Установите плагин в Jenkins.
    3. Укажите параметры инстанса ТестОпс в Jenkins, в том числе созданный API-токен из ТестОпс.
    4. Настройте джобу в Jenkins для импорта результатов тестов в ТестОпс.
    5. Запустите и проверьте джобу в Jenkins.
    6. Настройте созданную джобу в ТестОпс.
  3. Параметризируйте джобы в ТестОпс и Jenkins (при необходимости).

1. Настройте связь от ТестОпс к Jenkins ​

1.1. Создайте API-токен в Jenkins ​

  1. Создайте API-токен в Jenkins.
  2. Сохраните API-токен в безопасном месте, он понадобится для подключения интеграции с Jenkins в ТестОпс.

1.2. Подключите интеграцию с Jenkins на уровне инстанса ТестОпс ​

  1. Перейдите в ваш инстанс ТестОпс → раздел Администрирование → Интеграции.

  2. Нажмите Добавить интеграцию.

  3. В списке доступных интеграций выберите Jenkins.

  4. Заполните поля:

    • Название подключения — введите название, которое поможет вам распознать интеграцию (например, Jenkins production).

    • Endpoint — введите URL-адрес вашего инстанса Jenkins (например, https://jenkins.example.com/).

    • Типы учетных данных — нажмите на выпадающий список и выберите один или несколько типов учетных данных Jenkins, которые будет поддерживать интеграция.

      Примечание

      Подробнее о поддерживаемых типах учетных данных см. Интеграции с внешними системами → Учетные данные внешних систем.

  5. Если ваш инстанс Jenkins использует самоподписанный SSL-сертификат, уберите галочку напротив Проверка SSL-сертификата.

  6. Если интеграция может работать с глобальными учетными данными Jenkins, в секции Глобальные учетные данные:

    1. Введите имя пользователя нужной учетной записи в Jenkins (например, ivanivanov).
    2. Введите API-токен, который вы сохранили на шаге 1.1.
  7. При необходимости проверьте соединение с Jenkins, чтобы убедиться в корректности указанных данных.

  8. Нажмите Добавить подключение.

В разделе Администрирование → Интеграции появится интеграция с Jenkins с одним автоматически созданным подключением.

1.3. Добавьте настроенное подключение к Jenkins в проект ТестОпс ​

Чтобы добавить настроенное подключение к Jenkins в нужный проект ТестОпс, воспользуйтесь одним из способов:

  1. В ТестОпс перейдите в раздел Администрирование → Интеграции.

  2. В списке настроенных интеграций найдите и откройте интеграцию с Jenkins.

  3. В списке настроенных подключений найдите и откройте ваше подключение к Jenkins.

  4. Нажмите Добавить в проект.

  5. В списке доступных проектов выберите нужный проект ТестОпс.

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

  7. Если интеграция будет работать с проектными учетными данными Jenkins, в секции Проектные учетные данные:

    1. Введите имя пользователя нужной учетной записи в Jenkins (например, ivanivanov).
    2. Введите API-токен, который вы сохранили на шаге 1.1.
  8. При необходимости проверьте соединение с Jenkins, чтобы убедиться в корректности указанных данных.

  9. Нажмите Добавить в проект.

2. Настройте связь от Jenkins к ТестОпс ​

Выполните шаги ниже, чтобы настроить вторую часть двусторонней связи: отправку статусов сборок и результатов тестов из Jenkins в ТестОпс.

2.1. Создайте API-токен в ТестОпс ​

  1. Создайте API-токен в ТестОпс.
  2. Сохраните API-токен в безопасном месте, он понадобится для настройки плагина в Jenkins.

2.2. Установите плагин для Jenkins ​

Вы можете установить плагин для Jenkins двумя способами:

  • указать URL-адрес плагина в настройках Jenkins (рекомендуемый способ);
  • загрузить HPI-файл с плагином в Jenkins вручную (если у инстанса Jenkins нет доступа к интернету).

Выбранный метод установки не влияет на функциональность плагина.

Внимание

Доступные версии плагина:

Более ранние версии Jenkins не поддерживаются.

Убедитесь, что на всех агентах (раннерах) Jenkins установлена версия Java не ниже 17, совместимая с вашей версией Jenkins. В противном случае плагин не запустится и результаты тестов не будут импортироваться в ТестОпс.

Примечание

Интерфейс и ссылки в шагах, описанные ниже, относятся к плагину версии 4.2.1 — для Jenkins 2.532 и выше.

Плагины версий 4.0.2 и 4.1.0 устанавливаются и настраиваются аналогичным способом.

  1. Перейдите на страницу qatools-jenkins-plugin и скопируйте URL-адрес HPI-файла.
  2. Перейдите в ваш инстанс Jenkins.
  3. В правом верхнем углу нажмите иконку Manage Jenkins и перейдите в раздел Plugins → Advanced settings.
  4. В секции Deploy Plugin → URL введите URL-адрес HPI-файла.
  5. Нажмите Deploy.
  6. Дождитесь установки плагина.

2.3. Укажите параметры инстанса ТестОпс в Jenkins ​

  1. В Jenkins в правом верхнем углу нажмите иконку Manage Jenkins и перейдите в раздел System.

  2. В секции ТестОпс нажмите Add ТестОпс Server → ТестОпс Server.

  3. Заполните поля:

    • ID — введите название, которое поможет вам распознать инстанс ТестОпс.
    • Endpoint — введите URL-адрес вашего инстанса ТестОпс.
  4. Рядом с полем Credentials нажмите + Add → Jenkins.

  5. Заполните поля:

    • Kind — нажмите на выпадающий список и выберите Secret text.
    • Secret — введите API-токен, который вы сохранили на шаге 2.1.
    • ID — введите название, которое поможет вам распознать API-токен (например, testops-credentials).
  6. Нажмите Add.

  7. В поле Credentials нажмите на выпадающий список и выберите название API-токена, которое вы указали на предыдущих шагах (например, testops-credentials).

  8. Если ваш инстанс ТестОпс использует самоподписанный SSL-сертификат, уберите галочку напротив Enable certificate validation.

  9. Нажмите Test connection. Если учетные данные верны, через несколько секунд появится сообщение «Successfully authorized as ⟨ваше имя пользователя в ТестОпс⟩».

  10. Нажмите Advanced и заполните поля:

    • Threads count — введите максимальное количество потоков для импорта файлов в ТестОпс.
    • Batch size — введите максимальное количество файлов для импорта в ТестОпс за один раз (одним потоком).
    • Results depth — введите количество уровней подкаталогов в директории с результатами тестов, которые будут сканироваться и импортироваться в ТестОпс. Значение 0 означает, что подкаталоги не будут импортированы.
    • Process interval — введите минимальный интервал (в секундах) между отправкой пакетов файлов (одним потоком).
    • Indexing interval — введите интервал (в секундах) между повторными сканированиями директории с результатами тестов.
    • Delay interval — введите минимальный интервал (в секундах) перед импортом вновь созданного файла в ТестОпс. Эта настройка позволяет избежать импорта неполных файлов.
    • Delay before upload finish — введите интервал (в секундах) после завершения джобы, по истечении которого система будет предполагать, что в директории больше не появятся новые файлы. Эта настройка позволяет избежать проблем с тестовыми раннерами, которые создают дополнительные процессы для записи файлов.
  11. Нажмите Save.

2.4 Настройте джобу в Jenkins для импорта результатов тестов в ТестОпс ​

Чтобы настроить импорт результатов тестов из Jenkins в ТестОпс, воспользуйтесь одним из способов в зависимости от типа вашей джобы Jenkins:

Freestyle-проект в Jenkins — это классический тип джобы, для которой вы добавляете и редактируете шаги вручную через интерфейс Jenkins. После установки плагина вы можете использовать тот же интерфейс, чтобы включить и настроить автоматическую импорт результатов тестов из Jenkins в ТестОпс:

  1. В Jenkins откройте джобу, из которой будут импортироваться результаты тестов в ТестОпс.

  2. В сайдбаре слева перейдите в раздел Configure.

  3. В секции Environment поставьте галочку напротив ТестОпс Upload.

  4. Заполните поля:

    • Server — нажмите на выпадающий список и выберите название инстанса ТестОпс, которое вы указали на шаге 2.3.
    • Credentials — нажмите на выпадающий список и выберите название API-токена, которое вы указали на шаге 2.3.
    • Project — нажмите на выпадающий список и выберите название проекта ТестОпс, в который будут импортироваться результаты тестов.
    • Launch name — введите шаблон для названий запусков в ТестОпс. Вы можете использовать любые переменные окружения Jenkins (см. полный список переменных по URL-адресу https://<ваш домен Jenkins>/env-vars.html).
    • Launch tags — введите список тегов (через запятую), которые будут присвоены запускам в ТестОпс.
  5. Нажмите Add results → Results.

  6. В поле Path введите путь к директории с результатами тестов (например, build/allure-results).

    Примечание

    В поле Path не поддерживаются подстановочные символы и шаблоны.

    Совет

    Если у вас есть несколько шагов сборки, которые генерируют результаты тестов в несколько директорий, нажмите Add results → Results, чтобы указать больше путей.

  7. Нажмите Advanced и при необходимости настройте дополнительные параметры:

    • Silent Mode — поставьте галочку, чтобы ошибка соединения при попытке импортировать результаты тестов не считалась ошибкой джобы.

      Совет

      Мы рекомендуем использовать этот параметр только в случае, если у вас есть другие средства для просмотра результатов тестов (например, если у вас дополнительно установлен плагин от Allure Report для Jenkins).

    • Index Existing Files — поставьте галочку, чтобы плагин импортировал все файлы, найденные в целевой директории, даже если они не были обновлены во время последнего запуска.

  8. Нажмите Save.

2.5. Запустите и проверьте джобу в Jenkins ​

  1. В Jenkins откройте джобу, настроенную для импорта результатов тестов в ТестОпс.

  2. В сайдбаре слева нажмите Build Now.

  3. Под сайдбаром слева нажмите на название запущенной сборки, чтобы открыть ее карточку, и дождитесь завершения сборки.

  4. В сайдбаре слева или в карточке сборки найдите ссылку ТестОпс Report на запуск в ТестОпс.

    Ссылка на запуск ТестОпс находится в карточке запущенной сборки.

  5. Перейдите по ссылке в ТестОпс и откройте результаты одного из тестов.

  6. В строке под названием теста найдите название сборки Jenkins, из которой импортированы результаты этого теста.

  7. Нажмите на название сборки Jenkins, чтобы открыть сборку и проверить корректность связи между Jenkins и ТестОпс.

2.6. Настройте джобу в ТестОпс ​

  1. Перейдите в ваш проект ТестОпс → раздел Джобы.

    В списке будет отображаться новая джоба, автоматически добавленная во время запуска на шаге 2.5.

  2. Напротив добавленной джобы нажмите ⋯ → Настроить.

  3. Заполните поля:

    • Название — введите название, которое поможет вам распознать джобу.
    • Сервер сборки — нажмите на выпадающий список и выберите название подключения к Jenkins, которое вы добавили на шаге 1.2.
    • Джоба может быть использована для запуска тестов — поставьте галочку, чтобы пользователи могли запускать джобу из ТестОпс.
  4. Нажмите Отправить.

3. Параметризируйте джобы в ТестОпс и Jenkins ​

Jenkins поддерживает параметризованные сборки.

ТестОпс поддерживает эту функциональную возможность через Окружение, которое позволяет задавать параметры для новых джоб ТестОпс и просматривать параметры из сборок Jenkins.

3.1. Укажите параметры в джобе Jenkins ​

  1. Перейдите в ваш инстанс Jenkins.

  2. Откройте джобу, настроенную для импорта результатов тестов в ТестОпс.

  3. В сайдбаре слева перейдите в раздел Configure.

  4. В cекции General поставьте галочку напротив This project is parameterized.

  5. Для каждого параметра, который вы хотите добавить, нажмите Add Parameter → String Parameter и заполните поля:

    • Name — введите название параметра.
    • Default Value — введите значение по умолчанию, которое будет использоваться, если значение не переопределено для конкретного запуска.

    Строковый параметр можно добавить в джобе Jenkins.

  6. Нажмите Save.

3.2. Добавьте глобальные переменные окружения в ТестОпс ​

Перед тем как использовать значения параметров из джобы Jenkins, создайте глобальные переменные окружения на уровне инстанса ТестОпс, которые будут хранить эти данные:

  1. Перейдите в ваш инстанс ТестОпс → раздел Администрирование → Окружения.

  2. Для каждой переменной, которую вы хотите добавить:

    1. Нажмите + Создать.
    2. Введите название глобальной переменной.
    3. Нажмите Отправить.

    Названия переменных окружения добавляются в разделе «Администрирование».

    Важно

    Если в репозитории вашего проекта в Jenkins есть несколько веток, обязательно создайте глобальную переменную окружения Branch в ТестОпс и передайте ее в вашу джобу. Эта переменная укажет Jenkins, какую из веток нужно использовать.

3.3. Сопоставьте параметры джобы Jenkins с глобальными переменными окружения в ТестОпс ​

  1. Перейдите в ваш проект ТестОпс → раздел Настройки → Окружение.

  2. Для каждого параметра, который вы хотите использовать:

    1. Нажмите + Создать, если параметра нет в списке. Если параметр уже существует, напротив его названия нажмите иконку Редактировать.
    2. В поле Ключ введите название параметра в Jenkins из шага 3.1.
    3. В поле Переменная окружения нажмите на выпадающий список и выберите название глобальной переменной в ТестОпс из шага 3.2.
    4. Нажмите Отправить.

    Сопоставление переменных окружения находится в настройках проекта.

3.4. Добавьте параметры в джобу ТестОпс ​

  1. Перейдите в ваш проект ТестОпс → раздел Джобы.

  2. Напротив джобы, которую вы хотите параметризировать, нажмите иконку Обновить настройки джобы с сервера сборки.

    Имена параметров и их значения по умолчанию появятся в описании джобы.

    Список параметров находится под названием джобы.

  3. Напротив джобы, которую вы хотите параметризировать, нажмите ⋯ → Настроить.

  4. Для каждого параметра, который вы хотите использовать, в секции Параметры → Переменная окружения нажмите на выпадающий список и выберите соответствующую глобальную переменную окружения в ТестОпс из шага 3.2.

    В окне можно указать несколько переменных окружения.

  5. Нажмите Отправить.

Примеры настроенных пайплайнов Jenkins ​

Как упоминалось выше, интеграция с Jenkins настраивается для двух типов джоб — freestyle-проекта и пайплайна.

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

groovy
pipeline {
    agent any

    stages {
        stage('git pull') {
            steps {
                git branch: '${BRANCH_NAME}', url: 'https://github.com/ivanivanov/testops-example.git'
            }
        }
        stage('Running tests') {
            steps {
                catchError(buildResult: 'SUCCESS', message: 'There are some troubles with withAllureUpload', stageResult: 'UNSTABLE') {
                    withAllureUpload(indexExistingFiles: true, name: '${JOB_NAME} - #${BUILD_NUMBER}', projectId: '2199', results: [[path: 'build/allure-results']], serverId: 'TestOps production', silent: true,  tags: 'demo,${BRANCH_NAME},RELEASE:1-2-3') {
                    sh 'chmod +x ./gradlew'
                    sh './gradlew clean test'
                    sh 'printenv | grep ALLURE_'
                    sh 'printenv'
                    }

                }
                
            }
        }
    }
}

Удаление подключений и интеграции с Jenkins ​

Вы можете удалить подключение к интеграции с Jenkins двумя способами — на уровне отдельного проекта (через настройки проекта) или на уровне всего инстанса ТестОпс (через раздел Администрирование).

Удаление подключения на уровне проекта ​

Важно

Последствия удаления всех подключений из интеграции с Jenkins на уровне проекта:

  • Подключения к интеграции с Jenkins перестанут отображаться в списке подключений проекта, но продолжат работать в других проектах инстанса, в которых они были добавлены, и сохранятся в разделе Администрирование → Интеграции.

  • Интеграция с Jenkins перестанет отображаться в списке интеграций проекта, но сохранится в разделе Администрирование → Интеграции.

  • Связь с инстансом Jenkins будет удалена из джоб ТестОпс, которые относятся к интеграции и находятся в этом проекте:

    • Иконки для запуска и обновления этих джоб в разделе Джобы останутся активными.
    • ТестОпс не сможет запустить тесты из проекта на стороне Jenkins. После закрытия запуска результаты этих тестов получат статус «Неизвестный».
    • Результаты запусков тестов из Jenkins не будут отправляться в проект ТестОпс.

Чтобы удалить подключение на уровне проекта:

  1. Перейдите в ваш проект ТестОпс → раздел Настройки → Интеграции.
  2. В списке настроенных интеграций найдите и откройте интеграцию с Jenkins.
  3. Напротив нужного подключения к Jenkins нажмите ⋯ → Удалить → Да, удалить.

Подключение перестанет работать в вашем проекте.

Удаление подключения на уровне инстанса ​

Важно

Последствия удаления всех подключений из интеграции с Jenkins на уровне инстанса:

  • Подключения и интеграция с Jenkins будут полностью удалены.

  • Связь с инстансом Jenkins будет удалена из всех джоб ТестОпс, которые относятся к интеграции:

    • Иконки для запуска и обновления этих джоб в разделе Джобы станут неактивными.
    • Результаты запусков тестов из Jenkins не будут отправляться в инстанс ТестОпс.

Чтобы удалить подключение на уровне инстанса:

  1. Перейдите в ваш инстанс ТестОпс → раздел Администрирование → Интеграции.
  2. В списке настроенных интеграций найдите и откройте интеграцию с Jenkins.
  3. В списке настроенных подключений откройте карточку нужного подключения и напротив названия каждого проекта нажмите ⋯ → Удалить из проекта → Да, удалить.
  4. Нажмите Назад в интеграцию, чтобы вернуться к списку подключений.
  5. Напротив нужного подключения к Jenkins нажмите ⋯ → Удалить → Да, удалить.

Подключение перестанет работать во всех проектах инстанса.

Устранение неполадок ​

Ошибка «Could not create session for closed launch» при импорте данных из Jenkins ​

В некоторых случаях при импорте данных из Jenkins в ТестОпс в логах может появляться ошибка «Could not create session for closed launch».

Ошибка связана с особенностями джоб Jenkins. Джобы Jenkins не имеют уникальных ID, кроме своих названий. Следовательно, если удалить джобу и создать новую с тем же названием, вы не сможете импортировать данные в ТестОпс, потому что это название джобы уже использовалось.

Чтобы исправить ошибку:

  1. Переименуйте джобу Jenkins, выбрав название, которое не использовали ранее.
  2. Повторите импорт данных.

Ошибка «java.lang.UnsupportedClassVersionError» при импорте данных из Jenkins ​

При импорте результатов тестов плагин может завершиться ошибкой:

shell
java.lang.UnsupportedClassVersionError: <...>/jenkins/callable/UploadResultsCallable has been compiled by a more recent version of
the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0

После этой ошибки появится сообщение:

shell
Caused: hudson.remoting.ProxyException: <...>.jenkins.AllurePluginException: Could not stop uploader

Данная ошибка означает, что вы используете плагин, несовместимый с текущей версией Jenkins, — Java, используемая Jenkins, новее, чем версия, используемая плагином.

Чтобы исправить ошибку:

  1. Обновите плагин до актуальной версии.

  2. Убедитесь, что версия Jenkins совместима с установленной версией плагина.

  3. Убедитесь, что на агентах и хосте Jenkins совпадают версии Java.

    Важно

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

Ошибка «java.lang.NoClassDefFoundError» при запуске withAllureUpload() ​

На Jenkins 2.579 и выше плагин версии 4.2.0 может завершиться ошибкой при инициализации шага withAllureUpload():

shell
java.lang.NoClassDefFoundError: org/apache/commons/lang/BooleanUtils
at PluginClassLoader for testops-jenkins//io.qameta.allure.jenkins.AllureLogger.<init>(AllureLogger.java:22)
at PluginClassLoader for testops-jenkins//io.qameta.allure.jenkins.WithAllureUploadStep$Execution.start(WithAllureUploadStep.java:154)

В этом случае команды внутри блока withAllureUpload() не выполняются, тесты не запускаются, а результаты не импортируются в ТестОпс.

Чтобы исправить ошибку, обновите плагин до актуальной версии.

Logo © 2026 Все права защищены. Сайт принадлежит компании ООО «Инструменты тестирования»