1. Обзор
Gatling — это инструмент для нагрузочного тестирования с отличной поддержкой протокола HTTP
, что делает его действительно хорошим выбором для нагрузочного тестирования любого HTTP
- сервера.
Это краткое руководство покажет вам, как настроить простой сценарий для нагрузочного тестирования HTTP
- сервера.
Сценарии симуляции Гатлинга написаны на Scala
, но не беспокойтесь — этот инструмент поможет нам с графическим интерфейсом, позволяющим записывать сценарий. Как только мы закончим запись сценария, графический интерфейс создаст сценарий Scala
, представляющий симуляцию.
После запуска симуляции у нас есть готовые HTML
- отчеты .
И последнее, но не менее важное: архитектура Гатлинга является асинхронной . Такая архитектура позволяет нам реализовывать виртуальных пользователей в виде сообщений вместо выделенных потоков, что делает их очень экономичными в плане ресурсов. Таким образом, запуск тысяч виртуальных пользователей не является проблемой.
Также стоит отметить, что основной движок на самом деле не зависит от протокола , поэтому вполне возможно реализовать поддержку других протоколов. Например, в настоящее время Gatling также предоставляет поддержку JMS
.
2. Создание проекта с использованием архетипа
Хотя мы можем получить пакеты Gatling в виде ZIP -архива
, мы решили использовать Gatling’s Maven Archetype
. Это позволяет нам интегрировать Gatling и запускать его в IDE
, а также упростить поддержку проекта в системе контроля версий. Будьте осторожны, так как для Gatling требуется 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
, ArtiftId
, версию
и имя пакета
для классов перед подтверждением создания архетипа.
В завершение импортируйте архетип в IDE — например, в Scala IDE (на основе Eclipse) или в IntelliJ IDEA .
3. Определите сценарий
Перед запуском регистратора нам необходимо определить сценарий . Это будет представление того, что на самом деле происходит, когда пользователи перемещаются по веб-приложению.
В этом руководстве мы будем использовать приложение, предоставленное командой Gatling в качестве примера и размещенное по URL-адресу http://computer-database.gatling.io .
Наш простой сценарий может быть таким:
- Пользователь заходит в приложение.
- Пользователь ищет «амстрад».
- Пользователь открывает одну из связанных моделей.
- Пользователь возвращается на главную страницу.
- Пользователь перебирает страницы.
4. Настройка регистратора
Прежде всего запустите класс Recorder
из IDE. После запуска графический интерфейс позволяет настроить способ записи запросов и ответов. Выберите следующие параметры:
8000
как прослушивающий порт- `
пакет
org.foreach.simulation` - `
Имя класса
RecordedSimulation` Следить за перенаправлениями?
проверилАвтоматические рефералы?
проверил- `
Выбрана первая стратегия фильтрации
черного списка` .*\.css
,.*\.js
и.*\.ico
в фильтрах черного списка
Теперь нам нужно настроить наш браузер для использования определенного порта ( 8000
), выбранного во время настройки. Это порт, к которому должен подключиться наш браузер, чтобы Recorder
мог зафиксировать нашу навигацию.
Вот как это сделать с Firefox, откройте расширенные настройки браузера, затем перейдите в панель «Сеть» и обновите настройки подключения:
5. Запись сценария
Теперь, когда все настроено, мы можем записать сценарий, который мы определили выше. Шаг следующий:
- Начните запись, нажав кнопку «Старт».
- Зайдите на сайт: http://computer-database.gatling.io
- Найдите модели, в названии которых есть слово «амстрад».
- Выберите «Амстрад КПК 6128».
- Вернуться на главную страницу
- Несколько раз перебирает страницы модели, нажимая кнопку «
Далее ».
- Нажмите кнопку «Остановить и сохранить».
Симуляция будет сгенерирована в пакете org.foreach
, определенном во время настройки под именем RecordedSimulation.scala .
6. Запустите симуляцию с помощью Maven
Чтобы запустить нашу записанную симуляцию, нам нужно обновить наш pom.xml
:
<plugin>
<groupId>io.gatling</groupId>
<artifactId>gatling-maven-plugin</artifactId>
<version>2.2.4</version>
<executions>
<execution>
<phase>test</phase>
<goals><goal>execute</goal></goals>
<configuration>
<disableCompiler>true</disableCompiler>
</configuration>
</execution>
</executions>
</plugin>
Это позволило нам выполнить моделирование на этапе тестирования. Для запуска теста просто запустите:
mvn test
Когда симуляция будет завершена, консоль отобразит путь к HTML-отчетам.
Примечание. Конфигурация <disableCompiler>true</disableCompiler>
используется, потому что мы будем использовать Scala с maven. Этот флаг гарантирует, что мы не скомпилируем нашу симуляцию дважды. Более подробная информация доступна в документации Gatling .
7. Просмотр результата
Если мы откроем index.html
в предложенном месте, отчеты будут выглядеть следующим образом:
8. Заключение
В этом руководстве мы рассмотрели нагрузочное тестирование HTTP-сервера с помощью Gatling. Инструменты позволяют нам записывать симуляцию на основе определенного сценария с помощью интерфейса GUI. После завершения записи мы можем запустить наш тест. Отчет об испытаниях будет представлен в виде резюме в формате HTML.
Для создания нашего примера мы решили использовать архетип maven. Это помогло нам интегрировать Gatling и запустить его в IDE, а также упростить поддержку проекта в системе контроля версий .
Код примера можно найти в проекте GitHub .