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

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

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

setting

 

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

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

 

proxy settings

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

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

  1. Начните запись, нажав кнопку «Пуск»

  2. Заходим на сайт:http://computer-database.gatling.io

  3. Искать модели с ‘amstrad 'в названии

  4. Выберите ‘Amstrad CPC 6128 '

  5. Вернуться на главную страницу

  6. Проходит несколько раз по страницам модели, нажимая кнопкуNext

  7. Нажмите на кнопку «Остановить и сохранить»

Моделирование будет сгенерировано в пакете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. Просмотр результата

Если мы откроемindex.html в предложенном месте, отчеты будут выглядеть следующим образом:

reports

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.