Jenkins выполнить команду windows bat

Обновлено: 02.07.2024

В этом руководстве для начинающих мы познакомимся с Jenkins, сервером автоматизации CI/CD, а также запустим и автоматизируем процесс сборки простого проекта.

Вступление

Появление быстро развивающейся разработки со многими методологиями, такими как Scrum , Agile и Канбан , привело к некоторым ключевым проблемам: разработчики, работающие небольшими шагами, потратили много времени в ожидании создания новой версии, достигли тестировщиков и в конечном итоге были развернуты. Процесс разработки был бы намного быстрее, если бы этот цикл исключал вмешательство человека везде, где это возможно.

Возникла идея серверов автоматизации . На протяжении многих лет многие решения появлялись и исчезали, но Дженкинс сумел выйти на первое место и стать стандартом, когда дело доходит до автоматизации. Хотя Дженкинс идеально подходит для простого планирования и выполнения командных или пакетных сценариев, будучи открытым исходным кодом и имея широкую поддержку сообщества, он обеспечивает легкую интеграцию со многими инструментами, платформами и фреймворками с более чем 1500 плагинами, что делает весь процесс легким.

Ключевые концепции Дженкинса

Чтобы понять, почему кто-то должен использовать Дженкинса, нам нужно понять, какие проблемы Дженкинс стремится решить.

Конвейер CI/CD

От начала до конца жизненный цикл программного обеспечения состоит из нескольких этапов. Автоматизация помогает нам преодолеть разрывы между ними, делая весь процесс бесшовным. В качестве примера возьмем простой, обычный рабочий процесс-сервер автоматизации будет прослушивать новые версии разработки, извлекать их и запускать соответствующие команды для создания и тестирования новой версии и, наконец, запускать новую версию в производство, если все прошло успешно.

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

Архитектура Контроллера-Агента

Плагины

Плагины являются основой успеха Дженкинса. Любой разработчик Java может написать свой собственный плагин и поделиться им с сообществом. Дженкинс очень подчеркивает это и написал несколько очень подробных руководств по этому вопросу. Какой бы инструмент вы ни хотели использовать в конвейере, Дженкинс, вероятно, снабдит вас плагином, который облегчит весь процесс настройки и интеграции с этим инструментом.

Соглашения об именовании

На протяжении всего жизненного цикла Дженкинса номенклатура немного менялась, в том числе из-за того, что определенная терминология может рассматриваться как оскорбительная.

Несмотря на то, что некоторые соглашения об именах были введены много лет назад, сообщество по-прежнему использует их взаимозаменяемо. Чтобы избежать путаницы, вот несколько синонимичных терминов:

Более старая Ведущая/Ведомая архитектура была переименована в Контроллер/Агент архитектура из-за негативных коннотаций терминологии.

Установка

Существует множество способов установки Дженкинса. Наряду с установками для конкретной платформы многие платформы облачного хостинга предлагают предварительно настроенные пакеты Jenkins. Существует также официальный образ докера , а также общий файл Java war .

В этом руководстве будет описан процесс установки в Ubuntu 20.04 , хотя этот процесс не сильно отличается для Windows, Mac или других дистрибутивов. Проверьте страницу загрузки Дженкинса для вашей конкретной машины (или облачной службы).

Установка JDK/JRE

Будучи написанным на Java, Дженкинсу для запуска требуется Среда выполнения Java . Обратите внимание , что для OpenJDK доступны только версии 8 и 11 поддерживаются. Если вы хотите создавать Java-приложения с помощью Jenkins, вам нужно будет установить JDK вместо только JRE .

Давайте продолжим и установим openjdk-11-jdk :

Обновление списка источников и установка с помощью apt

Дженкинс недоступен в официальном репозитории Linux, поэтому нам придется добавить его собственный репозиторий. Мы собираемся установить версию LTS ( Долгосрочная поддержка ), которая обновляется каждые 12 недель, согласно веб-сайту Дженкинса.

Для острия, если, например, вы хотите разрабатывать плагины, удалите часть -stable из первой и второй строк ниже:

Наконец, мы можем продолжить и зарегистрировать Дженкинса в качестве сервиса и запустить его через терминал:

Доступ к Дженкинсу из браузера

По умолчанию Дженкинс размещен на порту 8080 .

Если вы установили Jenkins на локальном компьютере, доступ к нему можно получить из браузера, перейдя по адресу localhost:8080 . Если вы установили его на виртуальной машине, выполнение команды ifconfig (часть net-tools ) покажет IP-адрес виртуальной машины в вашей локальной сети.

При первом запуске Дженкинса требуется скрытый пароль. Его можно найти в /var/lib/Дженкинс/секреты/начальный пароль администратора , написанный на сервере. Извлеките и введите его, чтобы продолжить:

На второй странице выберите опцию Установить предлагаемые плагины . Установка плагина рассматривается далее в этом руководстве. Дождитесь установки плагинов, создайте учетную запись администратора, настройте URL-адрес Дженкинса (в нашем случае мы оставим его на localhost:8080 ) для доступа других пользователей, и вам будет представлена Панель мониторинга :

Использование Дженкинса

Дженкинс-это большой и сложный проект, и мы рассмотрим большинство наиболее важных функций.

Для этого мы рассмотрим три примера рабочего процесса:

  • Использование браузера для создания проекта Maven с уведомлениями по электронной почте.
  • Подключение к репозиторию GitHub и создание нашего приложения Maven с помощью файла репозитория Дженкинса .
  • Используя jenkins-cli.jar Для выполнения повседневных задач, таких как управление заданиями, запуск сборок, проверка журналов и т.д. Из командной строки.

Мы будем использовать фиктивный проект Maven , созданный для этого руководства.

Простая Локальная Сборка

Установка плагинов

Перейдите к опции Управление плагинами в разделе Управление Дженкинсом :

Дождитесь установки плагина, прежде чем продолжить.

Настройка Maven

В разделе Управление Дженкинсом перейдите в раздел Глобальная конфигурация инструмента . Прокрутите страницу вниз и добавьте установку Maven. Сохраните новые изменения.

Настройка электронной почты

Перейдите в Настройка системы в Управление Дженкинсом . Перейдите вниз к Уведомлению по электронной почте и настройте адрес электронной почты, который будет использовать Дженкинс. Обратите внимание , что Google и многие другие сервисы требуют настройки паролей для конкретных приложений из соображений безопасности.

Создание проекта

Выберите Новый элемент на боковой панели, дайте своему проекту имя и отметьте его как Проект Maven , прежде чем нажать ОК :

Git Essentials

Ознакомьтесь с этим практическим руководством по изучению Git, содержащим лучшие практики и принятые в отрасли стандарты. Прекратите гуглить команды Git и на самом деле изучите это!

В нижней части настройте файл POM расположение и настройте дополнительный шаг post для отправки уведомлений по электронной почте. Обратите внимание, что в Unix-подобных системах Дженкинс создает отдельного пользователя Дженкинс , поэтому могут потребоваться права доступа.

Запуск сборки

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

Отслеживание репозитория GitHub и чтение файла Дженкинса

Нам пришлось рассмотреть более простой пример выше, чтобы понять, как работает Дженкинс. Следующий пример, безусловно, является наиболее частым способом настройки любого конвейера. Размещение конфигурации конвейера в текстовом файле и в CVS обеспечивает большую переносимость и возможность настройки.

Чтобы продвинуть наши изменения вверх по течению или при работе с частным репозиторием, нам придется аутентифицировать Дженкинса в GitHub. Мы также будем указывать Дженкинсу в направлении файла Дженкинса , который обычно содержится в корневом каталоге репозитория.

Учетные данные GitHub

Чтобы безопасно получить доступ к GitHub, мы сгенерируем пару ключей , зарегистрируем закрытый ключ в Jenkins и запишем открытый ключ в список развертывания репозитория GitHub. Таким образом, мы можем иметь общедоступный код с открытым исходным кодом (или просто код, которым делятся коллеги), сохраняя при этом безопасность.

Для создания пары ключей мы будем использовать команду ssh-keygen :

Выберите, где хранить ключи, и установите пароль, если хотите.

Затем скопируйте закрытый ключ и перейдите на панель управления Дженкинса. Оттуда в разделе Управление Дженкинсом перейдите в Управление учетными данными -> Дженкинс -> Глобальные учетные данные -> Добавить учетные данные .

Теперь пришло время создать проект и настроить его.

Создание проекта

На панели мониторинга перейдите в Новый элемент -> Многоответвленный конвейер . Дайте ему название и продолжайте. В разделе Источники филиалов выберите git , укажите имя источника, введите адрес хранилища и выберите соответствующие учетные данные, которые мы только что добавили. Сохраните изменения и продолжайте.

Мы заставим наш проект прослушивать изменения в репозитории, прокрутив вниз Сканирование триггеров конвейера с несколькими ответвлениями и установив флажок, выбрав 1 минуту в качестве желаемого интервала. Нажмите сохранить .

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

Написание файла Дженкинса

Этот простой синтаксис очень удобочитаем и достаточно понятен. Мы определили конвейер, который может быть выполнен любым доступным агентом . Существует только один этап ( 'сборка' ), на котором будет запущена команда оболочки для создания нашего кода.

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

Этот процесс или любой другой, если бы мы вносили изменения в файл Дженкинса, будет выполняться каждый раз, когда новая фиксация будет отправлена в репозиторий.

Служебные задачи в командной строке

Чтобы избежать использования браузера для повседневных задач, таких как запуск/остановка заданий, проверка вывода сборки на консоль или импорт/экспорт, нам нужно будет загрузить jenkins-cli.jar .

Он входит в комплект каждой установки Дженкинса:

Чтобы узнать, сможем ли мы подключиться к Дженкинсу, давайте введем следующую команду:

Соединение прошло успешно. Давайте свяжемся с пользователем с более широкими правами доступа, чтобы иметь возможность управлять проектами, плагинами, сборками и т.д. Чтобы избежать ввода пароля в консоли, можно настроить маркер API.

Создание маркера API

Давайте создадим токен для нашего пользователя-администратора, выполним действия на изображении и скопируем полученный текст:

Чтобы указать пользователя, мы будем использовать параметр -auth , который получает параметры [ПОЛЬЗОВАТЕЛЬ:СЕКРЕТНЫЙ | @ФАЙЛ] . Давайте поместим наше имя пользователя:токен в файл с именем учетные данные , на который мы будем ссылаться при подключении.

Список заданий и запущенных сборок
Импорт/Экспорт Существующих Заданий

Все конфигурации в Jenkins определяются с помощью XML. Это позволяет легко повторно использовать существующие конфигурации или импортировать новые. Помимо определений проектов, глобальные конфигурации, такие как плагины и учетные данные, все написаны в XML.

jenkins-cli обеспечивает поддержку импорта и экспорта с помощью команд get-job и create-job , которые принимают XML в качестве параметра. Следующий код дублирует наш проект Maven в новый:

Вывод

Это руководство предназначено для ознакомления с мощью и расширяемостью Дженкинса. Хорошо понимая основные принципы, ваши знания о Дженкинсе взлетят до небес, как только вы начнете экспериментировать с различными проектами, смешивая и сопоставляя различные инструменты сборки, языки и среды сборки.

Я использую Jenkins 2.46.1 У меня установлен плагин build pipeline, и я хочу выполнить в нем Windows batch file. batch file должен выполняться в новом командном окне, а не на выходе консоли jenkins. Я даю ниже Jenkins pipeline groovy сценарий:

На этапе init я хочу убить процесс, если он уже открыт, а на этапе deploy он должен открыть новое командное окно и запустить my batch file. Проблема в том, что вышесказанное не работает. Сборка проходит успешно, но командное окно не открывается. Пожалуйста, предложите

2 ответа

Я выполняю этот код: node('my_windows_slave') < sh 'ls' >В моем рабе Windows я могу правильно выполнить команду sh : Но скрипт конвейера не может запустить файл .sh : [Pipeline] sh [D:\workspace\sandbox_pipeline] Running shell script sh.

Технически, чтобы сделать то, о чем вы просите, вы должны иметь возможность запускать

Это приведет к запуску новой команды windows (cmd.exe) и запуску batch file. В зависимости от того, как работает ваш подчиненный Jenkins, вы можете ничего не видеть. (например, если он работает как служба windows или другой пользователь, вы ничего не увидите)

Альтернативное решение, если агент работает в службе, и вы хотите получить выходные данные:

Примечание: Файл bat должен находиться в вашем рабочем пространстве.

Дополнительное примечание: Вы больше не запускаете файл bat из его исходного местоположения. Вместо этого он запускается из временного расположения, созданного базовой системой долговременных задач. Это означает, что такие вещи, как %

dp0 в вашем сценарии, не вернут пути, которые вы могли бы ожидать.

Похожие вопросы:

Я пытаюсь запустить файл с помощью плагина управляемого скрипта Когда я бегу, возникает ошибка: FailedConsole Output Started by user anonymous [EnvInject] - Loading node environment variables.

У меня простой вопрос. Я хочу запустить bat-файл, который должен запускать post build. Bat-файл принимает параметры previousVersion и currentVersion (эти параметры вводятся как проверяющие строковые.

Я выполняю этот код: node('my_windows_slave') < sh 'ls' >В моем рабе Windows я могу правильно выполнить команду sh : Но скрипт конвейера не может запустить файл .sh : [Pipeline] sh.

У меня есть windows batch file, который я хочу выполнить как услугу. Я нашел приложение типа alwaysRun, но для этой цели хочу использовать встроенное приложение windows. Может кто-нибудь.

у меня есть bat-файл с именем jenkins.bat , чтобы начать процесс сборки на сервере jenkins. Теперь я хочу выполнить этот bat-файл как post-commit-hook в git. Поэтому создается следующий файл.

Мой jenkins установлен в C:\Program Files (x86)\Jenkins файл bat находится в C:\Users\Admin\workspace\demoWork\run.bat Когда я запускаю этот bat-файл из cmd, все работает нормально. Но когда я.

Мне нужно запрограммировать что-то с C, что может выполнить файл .bat на Windows. Естественно, на ум должна прийти функция system() . Однако есть огромная проблема . В принципе, функция system() не.

У меня есть установка Jenkins windows, установленная на машине Windows 10. Я хотел бы запланировать здание, которое просто выполнит файл BAT, предназначенный для запуска скрипта на виртуальном Env.

Изображения с мелкими деталями в статье кикабельны, поэтому не ломаем глаза и увеличиваем их.

УСТАНОВКА JENKINS

Установочный пакет Jenkins можно скачать с официального сайта jenkins.io. Установку Jenkins описывать не буду, так как она элементарна и не требует отдельных объяснений. Хочу только заметить, что я установил Jenkins в каталог «C:\jenkins», поэтому в статье я буду ссылаться именно на него.

Для всех пакетов, которые мы будем использовать в связке с Jenkins, мы создадим отдельный каталог «C:\jenkins\CI_package», в который и будем помещать все необходимые нам пакеты и программы.

В Jenkins интерфейс отображает на том языке, который выбран по умолчанию в браузере. Если хотите поменять язык интерфейса, то вам придётся поменять язык в браузере (Chrome) или установить в Jenkins плагин «Locale».

УСТАНОВКА GIT

УСТАНОВКА И НАСТРОЙКА NUGET

Создаём в каталоге «C:\jenkins\CI_package» файл «nuget.config» и заполняем его следующим содержимым:

У меня в секции «packageSources» указано два источника, откуда могут браться пакеты:
1. Официальный источник NuGet-пакетов.
2. Каталог на компьютере, в который я могу поместить пакеты *.nupkg.

Содержимое указанных секций можете менять на своё усмотрение (аккуратно). Другие секции не трогаем и оставляем как есть.

НАСТРОЙКА JENKINS

Установка плагинов

Ищем плагины именно называющиеся, так как я и написал выше, особенно это касается плагина «Git», иначе можете установить не то что нужно.

После установки плагинов перезагружаем Jenkins.

Настройка MSBuild

Чтобы можно было производить в дальнейшем компиляцию проекта нам необходимо произвести настройку Jenkins, чтобы он знал, где находится MSBuild. Для этого нам необходимо:
1. Определить путь до «MSBuild.exe».
2. Указать определённый путь в Jenkins.

И в разделе «MSBuild» прописываем настройки. У меня они будут выглядеть следующим образом:

Создание проекта

На главной странице в левом меню выбираем пункт «Создать Item»:

11

В открывшемся окне вписываем имя проекта и выбираем тип проекта:

Нажимаем «ОК». Откроется страница настройки проекта. Если страница не открылась, то откройте её (на главной странице нажмите по названию проекта и далее в левом меню сайта «Настройки»).

Заполнение блока «Управление исходным кодом»

Теперь Jenkins знает, откуда требуется качать исходники.

Заполнение блока «Триггеры сборки»

Данный блок заполняйте на своё усмотрение. Если хотите, чтобы Jenkins опрашивал репозиторий каждые 30 минут и при наличии изменений запускал сборку, то указываем следующее:

Заполнение блока «Сборка»

Добавляем первый шаг «Выполнить команду Windows» в блоке «Сборка»:

В появившемся поле указываем, что нам надо запустить «nuget.exe» для восстановления NuGet-пакетов, ведь мы их в репозиторий не загружаем. Команда:

"C:\jenkins\CI_package\nuget.exe" restore "%WORKSPACE%\test.sln" -ConfigFile "C:\jenkins\CI_package\nuget.config"

Можно использовать различные команды (примеры):

"C:\jenkins\CI_package\nuget.exe" restore "%WORKSPACE%\test.sln" -ConfigFile "C:\jenkins\CI_package\nuget.config"
"C:\jenkins\CI_package\nuget.exe" restore "%WORKSPACE%\test.sln" -source "C:\nuget_package"
"C:\jenkins\CI_package\nuget.exe" restore "%WORKSPACE%\test.sln" -source "https://nuget.victorz.ru/v3/index.json"

Выбирайте, что вам больше нравится. Скажу только, что использование файла конфигурации, по моему мнению, оптимальный вариант.

Добавим второй шаг «Build a Visual Studio project or solution using MSBuild» в блоке «Сборка»:

Заполняем необходимые поля. В моём случае получим:

После этих настроек, в общем-то, проект уже рабочий и может выкачивать код из Git и компилироваться. Нам же необходимо ещё запускать тесты.

Добавляем третий шаг «Выполнить команду Windows» в блоке «Сборка»:

В открывшемся окне прописываем команду запуска NUnit с параметрами, в которых передаём путь к нашей библиотеке с тестами:

"%WORKSPACE%\packages\NUnit.ConsoleRunner.3.8.0\tools\nunit3-console.exe" "%WORKSPACE%\test\bin\Release\test.dll" --result=nunit-result.xml

У меня получилось следующее:

Если вам необходимо запускать тесты определённой категории, то дописываем это следующим образом (обратите внимание на окончание команды):

"%WORKSPACE%\packages\NUnit.ConsoleRunner.3.8.0\tools\nunit3-console.exe" "%WORKSPACE%\test\bin\Release\test.dll" --result=nunit-result.xml --where "cat == REST"

Заполнение блока «Послесборочные операции»

Чтобы Jenkins у себя в интерфейсе выводил результаты тестов надо в блоке «Послесборочные операции» добавить шаг «Publish NUnit test result report»:

В появившейся строке указать имя отчёта, который у нас будет генерировать NUnit:

Теперь нажимаем «Сохранить». Проект, который собирает наши тесты и запускает их, настроен.

Запуск тестов

Для запуска тестов достаточно на главной странице нажать на соответствующий значок сборки проекта:

Просмотр результатов

Для просмотра результатов достаточно перейти в проект и выбрать последний номер сборки в блоке «История сборок»:

ВСТРЕЧАЮЩИЕСЯ ОШИБКИ

Ошибка 1

Ошибка 2

В наши дни понятие «DevOps» у всех на слуху. Это — организационный подход, широко используемый для ускорения разработки и развёртывания приложений. Организации внедряют у себя практики DevOps, так как они обещают дать тем, кто их использует, всё лучшее, что существует в мире разработки ПО, причём — на всех этапах работы — от планирования и тестирования, до развёртывания и мониторинга проектов. В реализации практик DevOps важную роль играют CI/CD-инструменты вроде Jenkins. А интеграция Jenkins с Selenium значительно облегчает процесс автоматизации Selenium-тестов.


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

Что такое Jenkins?

Jenkins — это опенсорсный DevOps-инструмент, который пользуется популярностью в деле организации процессов непрерывной интеграции и непрерывной доставки программного обеспечения. Это — платформонезависимое приложение, написанное на Java. Оно представляет собой систему для сборки проектов. В частности, с его помощью собирают проекты из исходного кода, запускают модульные тесты, рассылают отчёты о сборках соответствующим членам команды разработчиков.

Подробнее о Jenkins можно почитать здесь.

Что такое Selenium?

Selenium — это опенсорсный инструмент, который широко используется для автоматизации тестирования веб-приложений. Пользоваться им просто, существуют форумы по Selenium, куда может обратиться тот, кто столкнулся с какими-то проблемами. Благодаря этому Selenium обрёл определённую популярность в кругах тестировщиков ПО. В состав Selenium входят четыре основных компонента: Selenium IDE, Selenium RC, Selenium WebDriver и Selenium Grid. Они созданы в расчёте на решение различных задач. Selenium даёт тому, кто им пользуется, возможности по кросс-браузерному и параллельному тестированию веб-приложений. Это позволяет тестировщикам выполнять испытания приложений в разных операционных системах и браузерах, что, в частности, даёт им возможность проверить совместимость веб-проекта с различными браузерами.

Если вас интересуют подробности о Selenium — посмотрите этот материал.

Теперь, после того, как я в двух словах рассказала о Jenkins и Selenium, пришло время серьёзно заняться вопросами интеграции этих инструментов. Но, прежде чем об этом говорить, надо задаться вопросом о том, установлены ли они в системе. Поэтому давайте сначала обсудим их установку и настройку.

Установка, настройка и запуск Jenkins

Шаг 1 — Для того чтобы загрузить Jenkins — можно воспользоваться соответствующей ссылкой на официальном сайте проекта. Нас, в частности, интересует .war-файл Jenkins.

Шаг 2 — Загрузим файл jenkins.war и сохраним его в выбранную директорию.

Шаг 3 — Откроем окно командной строки и перейдём в папку, в которой хранится загруженный .war-файл.

Шаг 4 — Выполним команду java -jar Jenkins.war . Будет запущен сервер Jenkins.

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


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


Настройка порта для Jenkins

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


Шаг 6 — Запустим браузер и перейдём к localhost . Как уже говорилось, по умолчанию Jenkins запускается на порте 8080 . В моём случае порт был изменён на 8081 , именно к этому порту localhost мне и нужно подключиться.

После этого откроется страница настроек Jenkins. Она используется для создания административной учётной записи.

Шаг 7 — Введём в соответствующее поле пароль, который ранее был показан в консоли, и нажмём на кнопку Continue для продолжения настройки системы.


Окно ввода пароля

Шаг 8 — После ввода пароля система предложит нам установить плагины.


Предложение об установке плагинов

Если вы не знаете точно о том, какие именно плагины вам понадобятся — можете выбрать вариант Install suggested plugins . Это приведёт к установке набора наиболее часто используемых плагинов. Но если вы знаете о том, что именно вам нужно, основываясь, например, на требованиях к проекту, вы можете выбрать вариант Select plugins to install и самостоятельно выбрать плагины для установки.

После этого плагины будут загружены и установлены.

Шаг 9 — После успешной установки плагинов система предложит создать учётную запись администратора, для чего нужно будет ввести имя пользователя, пароль и адрес электронной почты. После того, как эта учётная запись создана, нас перенаправят в панель управления Jenkins.


Создание учётной записи администратора

Существует множество способов интеграции Jenkins с Selenium WebDriver. Некоторые из них мы рассмотрим ниже. Разные способы интеграции этих систем применимы в различных условиях.

Первый метод интеграции Jenkins с Selenium

Шаг 1 — В панели управления Jenkins щёлкнем по значку New Item для создания нового проекта. Укажем имя проекта и выберем вариант Freestyle Project . После этого нажмём OK .


Начало создания нового проекта


Настройка свойств проекта

Шаг 2 — На вкладке свойств проекта General введём, в поле Description , описание проекта.


Ввод описания проекта

Шаг 3 — На вкладке Source Code Management выберем None в группе параметров Source Code Management .


Выбор системы управления исходным кодом

Шаг 4 — Jenkins позволяет планировать задания по сборке проектов. Время запуска заданий указывают в таком формате:


Смысл этих сокращений раскрыт в следующей таблице

Сокращённое наименование Описание
MINUTE Минуты в пределах часа (0 — 59)
HOUR Часы в пределах дня (0 — 23)
DOM День месяца (1 — 31)
MONTH Месяц (1 — 12)
DOW День недели (0 — 7), где воскресенье может быть представлено значениями 0 и 7

Шаг 5 — Создадим проект, который будем применять для запуска тестов с использованием Selenium WebDriver и TestNG.

Вот код на Java:


Шаг 6 — Создадим файл TestNG.xml :


Шаг 7 — В папке проекта добавим зависимости. Создадим .bat-файл со следующим содержимым:


Тут надо указать точное имя файла TestNG.xml , созданного ранее.

Шаг 8 — Выберем в панели управления Jenkins проект, который мы создали в самом начале работы. Щёлкнем по Configure . На вкладке General щёлкнем по Advanced и установим флажок Use custom workplace . Введём в поле Directory путь к папке проекта.


Ввод пути к папке проекта

Шаг 9 — На вкладке Build откроем выпадающий список Add Build Step и выберем Execute Windows batch Command . Введём в него имя .bat-файла, созданного на шаге №7.


Ввод сведений о .bat-файле

Шаг 10 — Щёлкнем по кнопке Apply , потом — по кнопке Save для того чтобы сохранить изменения, внесённые в настройки Jenkins-проекта. Теперь щёлкнем по кнопке Build Now , после чего можно будет понаблюдать за процессом выполнения тестов.


Запуск сборки проекта

Второй метод интеграции Jenkins с Selenium

Второй подход к автоматизации Selenium-тестов в Jenkins предусматривает использование Maven. Но прежде чем мы это обсудим, предлагаю немного поговорить о Maven, и о том, почему этот фреймворк пользуется популярностью при автоматизации тестов в Jenkins.

Что такое Maven?

Maven — это инструмент для автоматизации сборки проектов, который позволяет организовать добавление в проект зависимостей и управление ими с использованием файла pom.xml . Это позволяет многократно использовать одни и те же зависимости во множестве проектов. При добавлении зависимости в файл pom.xml эта зависимость автоматически загружается и добавляется в проект, что избавляет разработчика от необходимости вручную добавлять в проекты зависимости в виде JAR-файлов.

Совместное использование Maven, Jenkins и Selenium WebDriver даёт возможность построения DevOps-модели, реализующей механизм непрерывной интеграции программных проектов.

Установка Maven

Шаг 1 — Загрузим дистрибутив Maven с официального сайта проекта.

Шаг 2 — Добавим в состав системных переменных MAVEN_HOME — переменную, в которой содержится путь к домашней директории Maven.


Системная переменная MAVEN_HOME

Шаг 3 — Внесём в переменную Path путь к директории bin , содержащейся в домашней директории Maven.


Настройка переменной Path

Шаг 4 — Для того чтобы проверить правильность установки Maven — откроем окно командной строки и попробуем выполнить команду mvn –version .


Проверка правильности установки Maven

Шаг 5 — Создадим Maven-проект и добавим в файл pom.xml соответствующие зависимости:


Вот XML-файл с настройками тестов:

Интеграция Selenium и Jenkins с помощью Maven

Только что мы говорили об интеграции Jenkins с Selenium WebDriver. То, что получилось, лучше всего использовать для автоматизации Selenium-тестов. Интеграция Jenkins с Selenium WebDriver даёт разработчику надёжную систему кросс-браузерного тестирования проектов. Здесь мы поговорим об интеграции Jenkins и Selenium с помощью Maven.

Шаг 1 — Запустим сервер Jenkins.

Шаг 2 — Откроем браузер и перейдём на localhost , использовав порт, на котором работает Jenkins.


Открытие панели управления Jenkins в браузере

Шаг 3 — Щёлкнем по кнопке New Item в панели управления


Кнопка New Item

Шаг 4 — Введём имя проекта и, в качестве типа проекта, выберем Maven project .


Ввод имени проекта и выбор его типа

Шаг 5 — Нажмём на кнопку OK . После этого можно будет увидеть, как в панели инструментов появилось новое задание.


Новый проект в панели управления

Шаг 6 — Выберем проект и нажмём на кнопку Configure .


Переход к настройке проекта

Шаг 7 — На вкладке Build , в поле Root POM , введём полный путь к файлу pom.xml . В поле Goals and options введём clean test .


Настройка параметров сборки проекта

Шаг 8 — Щёлкнем Apply , а затем — Save .

Шаг 9 — Нажмём на кнопку Build Now .


Запуск сборки проекта


Просмотр журнала сборки

Итоги

Мы поговорили о том, почему проект Jenkins пользуется серьёзной популярностью, и о том, как интегрировать его с Selenium WebDriver ради эффективного выполнения тестов и достижения целей непрерывной интеграции программных проектов. Использование Jenkins для автоматизации запуска тестов позволяет разработчикам экономить время, а результаты выполнения тестов можно проанализировать, просмотрев соответствующие лог-файлы. Такой подход позволяет организовать полный цикл разработки ПО — разработку, развёртывание, тестирование, мониторинг, выпуск в продакшн. Jenkins поддерживает множество различных плагинов, предназначенных для решения самых разных задач, встающих перед разработчиками. Система, кроме того, умеет сообщать заинтересованным лицам о том, успешно ли прошла сборка проекта.

Надеюсь, теперь вы без труда сможете интегрировать Jenkins с Selenium WebDriver.

Читайте также: