«1. Обзор

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

2. Настройка JMeter

Давайте скачаем JMeter, разархивируем его, перейдем в папку bin и запустим исполняемый файл (*.bat для Windows и *.sh для Linux/Unix).

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

Самая стабильная версия на момент написания — 3.3 — мы можем проверить самую новую версию здесь.

3. Создание скриптов JMeter

Теперь давайте напишем наш первый скрипт JMeter (файл, содержащий техническое описание наших тестов).

Этот API представляет собой простое приложение SpringBoot, предоставляющее REST API.

Давайте обновим план тестирования и сначала изменим его имя, а затем добавим группу потоков.

Группа потоков позволяет нам узнать поток пользователей и имитирует их взаимодействие с приложением. Щелкните правой кнопкой мыши имя нашего скрипта в графическом интерфейсе и следуйте выбранному меню:

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

Здесь мы указали такие параметры, как:

— Имя: имя, которое мы хотим дать группе потоков ~~ ~ — Количество потоков (пользователей): количество параллельных пользователей

— Время разгона: время, необходимое для перехода от 0 к заявленному количеству пользователей

— Количество циклов: число повторений

Добавьте HTTP-запрос, который мы будем имитировать как исходящий от каждого из 5 пользователей.

Давайте заполним информацию для обращения к нашему API, как показано на изображении ниже:

Мы просто заполним адрес веб-сайта, порт и конкретный путь.

Далее давайте смоделируем запросы пользователей после добавления дерева результатов просмотра (Используйте Просмотр результатов в таблице, если результаты представляют собой список записей), следуя меню «Добавить \u003e Слушатель».

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

Мы можем увидеть более подробное представление ответа на вкладке результатов Sampler.

В заключение добавим Duration Assertion в HTTP-запрос, поэтому каждый запрос, который длится дольше десяти миллисекунд, будет считаться проваленным тестом:

После повторного запуска теста мы видим, что есть некоторые (здесь это 3 ) пользователи, которые не могут получить списки студентов менее чем за десять миллисекунд:

Теперь давайте сохраним тест с расширением .jmx в папке ресурсов API.

Для настройки нашего тестового файла доступны дополнительные элементы:

Запрос JDBC: полезен для отправки запроса JDBC (запроса SQL) в базу данных, перед его использованием нам нужно настроить элемент конфигурации соединения JDBC Утверждение XML: тесты что данные ответа представляют собой правильно правильный XML-документ. Утверждение размера: утверждает, что ответ содержит правильное количество байтов. доступные компоненты подробно описаны в руководстве пользователя.

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

    Есть два способа запуска тестов JMeter, один из них заключается в использовании доступного подключаемого модуля Maven, а другой — в автономном приложении JMeter в режиме без графического интерфейса.

В любом случае обоим нужно знать, где найти скрипт JMeter, который мы настроили ранее.

4.1. Плагин JMeter Maven

Плагин JMeter Maven — это плагин Maven, который позволяет запускать тесты JMeter как часть нашей сборки; его последняя версия на данный момент — 2.6.0, которая совместима с Apache JMeter 3.3.

Давайте добавим его в pom.xml нашего проекта:

После этого мы можем запускать все наши тесты с помощью mvn verify или только тесты JMeter с помощью mvn jmeter:jmeter; вот консольный вывод команды:

Примечание: Здесь мы указали каталог, в котором находятся наши тесты в проекте, либо будет выбран каталог по умолчанию (${project.basedir}/src/test/jmeter); аналогичным образом настраивается каталог результатов, иначе по умолчанию будет ${project.basedir}/target/jmeter/results.

Полная документация по плагину доступна здесь.

<plugin>
    <groupId>com.lazerycode.jmeter</groupId>
    <artifactId>jmeter-maven-plugin</artifactId>
    <version>2.6.0</version>
    <executions>
        <execution>
            <id>jmeter-tests</id>
            <goals>
                <goal>jmeter</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <testFilesDirectory>${project.basedir}/src/main/resources</testFilesDirectory>
        <resultsDirectory>${project.basedir}/src/main/resources</resultsDirectory>
    </configuration>
</plugin>

4.2. Режим без графического интерфейса

«Другой способ сделать это через исполняемый файл JMeter, предполагая, что он доступен через командную строку, мы можем сделать это:

jmeter -Jjmeter.save.saveservice.output_format=xml

-n -t src/main/resources /JMeter.jmx -l src/main/resources/JMeter.jtl

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

Примечание: рекомендуется не использовать режим графического интерфейса для нагрузочного тестирования, а только для создания и отладки тестов.

5. Заключение

В этом кратком руководстве мы настроили Apache JMeter в приложении SpringBoot для запуска тестов производительности с подключаемым модулем Maven, одновременно изучая, как разработать базовый тест производительности.

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

«

In this quick tutorial, we’ve set up Apache JMeter on a SpringBoot app to run performance tests with a Maven plugin while looking practically how to design a basic performance test.

As always, the source code for this article can be found over on GitHub.