Перейти к основному содержимому

Настройте Jenkins для запуска и отображения тестов JMeter

· 4 мин. чтения

Задача: Наибольшая подстрока палиндром

Для заданной строки s, верните наибольшую подстроку палиндром входящую в s. Подстрока — это непрерывная непустая последовательность символов внутри строки. Стока является палиндромом, если она читается одинаково в обоих направлениях...

ANDROMEDA 42

1. Обзор

В этой статье мы собираемся настроить конвейер непрерывной доставки с использованием Jenkins и Apache JMeter .

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

2. Настройка Дженкинса

Прежде всего, нам нужно скачать последнюю стабильную версию Jenkins , перейти в папку, где находится наш файл, и запустить его с помощью команды java -jar jenkins.war .

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

3. Установка плагина производительности

Установим плагин Performance , необходимый для запуска и отображения тестов JMeter:

./82a24f74e606affddb368f06be239071.png

Теперь нам нужно не забыть перезапустить экземпляр.

4. Запустите тесты JMeter с Jenkins

Теперь переходим на домашнюю страницу Jenkins и нажимаем «создать новые задания», указываем имя, выбираем проект Freestyle и нажимаем «ОК».

На следующем шаге на вкладке « Общие » мы можем настроить его с помощью следующих общих сведений: ``

./84065e5d87ebaa3a605889f2a61d5604.png

Затем давайте установим URL-адрес репозитория и ветки для сборки:

./d7dddde9ba206e69b5dc3f8ae390d9cf.png

Теперь перейдите на вкладку « Сборка » , чтобы указать, как мы будем строить проект. Здесь вместо того, чтобы напрямую указывать команду Maven для сборки всего проекта, мы можем воспользоваться другим способом, чтобы лучше контролировать наш конвейер, поскольку цель состоит в том, чтобы построить только один модуль. ``

На подвкладке Execute shell пишем скрипт для выполнения необходимых действий после клонирования репозитория: ** ** ``

  • Перейдите к нужному подмодулю
  • Мы составили его
  • Мы развернули его, зная, что это проект на основе весенней загрузки.
  • Ждем пока приложение станет доступно на порту 8989
  • И в конце мы просто указываем как путь к нашему скрипту JMeter (расположенному внутри папки ресурсов модуля jmeter ) для использования для тестирования производительности, так и путь к результирующему файлу ( JMeter.jtl ) также в папке ресурсов.

Вот небольшой соответствующий сценарий оболочки:

cd jmeter
./mvnw clean install -DskipTests
nohup ./mvnw spring-boot:run -Dserver.port=8989 &

while ! httping -qc1 http://localhost:8989 ; do sleep 1 ; done

jmeter -Jjmeter.save.saveservice.output_format=xml
-n -t src/main/resources/JMeter.jmx
-l src/main/resources/JMeter.jtl

Как показано на следующем изображении:

./b736a638cdc07358e6493dba94874999.png

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

Мы можем сделать это, добавив специальный Post-build Actions . Нам нужно предоставить исходный файл результатов и настроить действие:

./bf002130bd08fa5f01af257c83a64d75.png

Выбираем Standard Mode с последующими конфигами:

./487560613ef3eafcd9755558f9115024.png

Давайте нажмем « Сохранить», в левом меню панели инструментов Jenkins нажмите кнопку « Создать сейчас» ** ** и подождите, пока она завершит набор операций, которые мы там настроили.

После его завершения мы увидим в консоли все результаты нашего проекта. В конце мы получим либо Finished: SUCCESS ** ** , либо Finished: FAILURE :

./78c3189b93f44a276624609a776d4cb8.png

Перейдем в область отчета о производительности ** ** , доступную через меню слева.

Здесь у нас будет отчет обо всех прошлых сборках, включая текущую, чтобы увидеть разницу в производительности:

./7d551158c30e12ef707314e6673f1469.png

Щелкнем по индикатору вверху таблицы, чтобы получить только результат последней сборки, которую мы только что сделали:

./7d5189c87036897c1d8771d9f41c6798.png

На панели управления нашего проекта мы можем получить Performance Trend , которые представляют собой другие графики, показывающие результаты последних сборок:

./d45ccfbbe031dbc1f8c7447ede52b686.png

Примечание. Применить то же самое к проекту конвейера также просто:

  1. Создайте другой проект (элемент) на панели инструментов и назовите его , например, JMeter-pipeline ( вкладка «Общая информация» ) .
  2. Выберите Pipeline в качестве типа проекта
  3. На вкладке « Конвейер » в определении выберите « Сценарий конвейера » и установите флажок « Использовать песочницу Groovy». ``
  4. В области сценария просто заполните следующие строки:
node {
stage 'Build, Test and Package'
git 'https://github.com/foreach/tutorials.git'

dir('jmeter') {
sh "./mvnw clean install -DskipTests"
sh 'nohup ./mvnw spring-boot:run -Dserver.port=8989 &'
sh "while ! httping -qc1
http://localhost:8989 ; do sleep 1 ; done"

sh "jmeter -Jjmeter.save.saveservice.output_format=xml
-n -t src/main/resources/JMeter.jmx
-l src/main/resources/JMeter.jtl"
step([$class: 'ArtifactArchiver', artifacts: 'JMeter.jtl'])
sh "pid=\$(lsof -i:8989 -t); kill -TERM \$pid || kill -KILL \$pid"
}
}

Этот сценарий начинается с клонирования проекта, переходит в целевой модуль, компилируется и запускается, чтобы убедиться, что приложение доступно по адресу http://localhost:8989.

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

5. Вывод

В этой быстрой статье мы создали простую среду непрерывной доставки для запуска и демонстрации тестов Apache JMeter в Jenkins двумя способами; сначала через проект Freestyle, а затем через Pipeline .

Как всегда, исходный код этой статьи можно найти на GitHub .