Введение в Гатлинга
1. обзор
Gatling - этоload testing tool, который отлично поддерживает протоколHTTP, что делает его действительно хорошим выбором для нагрузочного тестирования любого сервераHTTP.
Это краткое руководство покажет вам, как использоватьsetup a simple scenario для нагрузочного тестирования сервераHTTP.
Gatlingsimulation scripts are written in Scala, но не волнуйтесь - инструмент помогает нам с графическим интерфейсом, позволяющим записывать сценарий. После того, как мы закончили запись сценария, графический интерфейс создает сценарийScala, представляющий моделирование.
После запуска моделирования у нас есть готовыйHTML reports.
И последнее, но не менее важное: архитектура Гатлингаis asynchronous. Такая архитектура позволяет нам реализовывать виртуальных пользователей в виде сообщений вместо выделенных потоков, что делает их очень дешевыми. Таким образом, запуск тысяч одновременно работающих виртуальных пользователей не является проблемой.
Также стоит отметить, что ядро ядра на самом делеprotocol agnostic, поэтому вполне возможно реализовать поддержку других протоколов. Например, Gatling в настоящее время также предоставляет поддержкуJMS.
2. Создание проекта с использованием архетипа
Although we can get Gatling bundles as a .zip we choose to use Gatling’s Maven Archetype. This allows us to integrate Gatling and run it into an IDE and make it easy to maintain the project in a version control system. Be careful as Gatling require a JDK8.
В командной строке введите:
mvn archetype:generate
Затем, когда будет предложено:
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains):
Тип:
gatling
Затем вы должны увидеть:
Choose archetype:
1: remote ->
io.gatling.highcharts:gatling-highcharts-maven-archetype (gatling-highcharts-maven-archetype)
Введите:
1
чтобы выбрать архетип, затем выберите версию для использования (выберите последнюю версию).
Выберите именаgroupId,artifactId,version иpackage для классов перед подтверждением создания архетипа.
Закончите, импортировав архетип в IDE - например, вScala IDE (на основе Eclipse) или вIntelliJ IDEA.
3. Определите сценарий
Перед запуском регистратора нам нужноdefine a scenario. Это будет представление о том, что действительно происходит, когда пользователи перемещаются по веб-приложению.
В этом руководстве мы будем использовать приложение, предоставленное командой Gatling, в качестве примера и размещенное по адресуhttp://computer-database.gatling.io.
Наш простой сценарий может быть:
-
Пользователь прибывает в приложение.
-
Пользователь ищет «amstrad».
-
Пользователь открывает одну из связанных моделей.
-
Пользователь возвращается на домашнюю страницу.
-
Пользователь перебирает страницы.
4. Настройка регистратора
Прежде всего, запустите классRecorder из IDE. После запуска графический интерфейс пользователя позволяет настроить способ записи запросов и ответов. Выберите следующие параметры:
-
8000 как порт прослушивания
-
org.example.simulation пакет
-
RecordedSimulation имя класса
-
Follow Redirects? проверен
-
Automatic Referers? проверен
-
Выбрана стратегия фильтрацииBlack list first
-
.\.css,.\.js и.*\.ico в фильтрах черного списка
Теперь нам нужно настроить наш браузер на использование определенного порта (8000), выбранного во время настройки. Это порт, к которому должен подключиться наш браузер, чтобыRecorder мог захватывать нашу навигацию.
Вот как это сделать с Firefox, откройте дополнительные настройки браузера, затем перейдите на панель «Сеть» и обновите настройки подключения:
5. Запись сценария
Теперь, когда все настроено, мы можем записать сценарий, который мы определили выше. Шаг следующий:
-
Начните запись, нажав кнопку «Пуск»
-
Заходим на сайт:http://computer-database.gatling.io
-
Искать модели с ‘amstrad 'в названии
-
Выберите ‘Amstrad CPC 6128 '
-
Вернуться на главную страницу
-
Проходит несколько раз по страницам модели, нажимая кнопкуNext
-
Нажмите на кнопку «Остановить и сохранить»
Моделирование будет сгенерировано в пакетеorg.example, определенном во время конфигурации под именемRecordedSimulation.scala
6. Запустите моделирование с Maven
Чтобы запустить записанное моделирование, нам нужно обновить нашpom.xml:
io.gatling
gatling-maven-plugin
2.2.4
test
execute
true
Это позволило нам выполнить моделирование на этапе тестирования. Чтобы начать тестирование, просто запустите:
mvn test
Когда симуляция будет завершена, консоль отобразит путь к отчетам HTML.
Примечание: используется конфигурация<disableCompiler>true</disableCompiler>, потому что мы будем использовать Scala с maven, этот флаг гарантирует, что мы не скомпилируем нашу симуляцию дважды. Более подробная информация доступна наGatling docs.
7. Просмотр результата
8. Заключение
[.iframe-fluid] ##
В этом руководствеwe have explored нагрузочное тестирование HTTP-сервера с помощью Gatling. Инструменты позволяют нам записывать моделирование на основе определенного сценарияwith the help графического интерфейса. После завершения записи мы можем запустить наш тест. Отчет об испытаниях будет представлен в виде резюме HTML.
Для построения нашего примера мы выбрали архетип maven. В этом нам поможетto integrate Gatling and run it into an IDE and make it easy to maintain the project in a version control system.
Пример кода можно найти вGitHub project.