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

Введение в Гатлинг

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

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

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

ANDROMEDA 42

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 в фильтрах черного списка

./a5a2613243ead3ec5fd8040a6d97532e.png

Теперь нам нужно настроить наш браузер для использования определенного порта ( 8000 ), выбранного во время настройки. Это порт, к которому должен подключиться наш браузер, чтобы Recorder мог зафиксировать нашу навигацию.

Вот как это сделать с Firefox, откройте расширенные настройки браузера, затем перейдите в панель «Сеть» и обновите настройки подключения:

./dd66b4a9e62b4dc081fa168afd3e8117.png

5. Запись сценария

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

  1. Начните запись, нажав кнопку «Старт».
  2. Зайдите на сайт: http://computer-database.gatling.io
  3. Найдите модели, в названии которых есть слово «амстрад».
  4. Выберите «Амстрад КПК 6128».
  5. Вернуться на главную страницу
  6. Несколько раз перебирает страницы модели, нажимая кнопку « Далее ».
  7. Нажмите кнопку «Остановить и сохранить».

Симуляция будет сгенерирована в пакете 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 в предложенном месте, отчеты будут выглядеть следующим образом:

./c837fb201b4cbb69abe07335b8e1c940.png

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

В этом руководстве мы рассмотрели нагрузочное тестирование HTTP-сервера с помощью Gatling. Инструменты позволяют нам записывать симуляцию на основе определенного сценария с помощью интерфейса GUI. После завершения записи мы можем запустить наш тест. Отчет об испытаниях будет представлен в виде резюме в формате HTML.

Для создания нашего примера мы решили использовать архетип maven. Это помогло нам интегрировать Gatling и запустить его в IDE, а также упростить поддержку проекта в системе контроля версий .

Код примера можно найти в проекте GitHub .