Jump to content

Гатлинг (программное обеспечение)

Гатлинг
Скриншот отчета Гатлинга
Тип бизнеса Частный
Тип сайта
с открытым исходным кодом Нагрузочное тестирование и тестирование производительности для веб-приложений
Доступно в Английский
Основан 1 июля 2015 г .; 9 лет назад ( 01.07.2015 )
Штаб-квартира Банье , Франция
Обслуживаемая территория По всему миру
Основатель(и) Стефан Ландель ( технический директор )
Промышленность Программное обеспечение
Продукты Гатлинг, Гатлинг Энтерпрайз (Линия фронта)
URL-адрес гатлинг .что
Запущен 13 января 2012 г .; 12 лет назад ( 13.01.2012 )
Текущий статус Активный
Написано в Скала , Java , JavaScript

Gatling — это среда нагрузочного тестирования и тестирования производительности, основанная на Scala , Akka и Netty . Первая стабильная версия была опубликована 13 января 2012 года. В 2015 году основатель Gatling Стефан Ландель создал компанию (названную «Gatling Corp»), занимающуюся разработкой проекта с открытым исходным кодом. По данным официального сайта Gatling Corp, Gatling был скачан более 20 000 000 раз (2024 г.). В июне 2016 года Gatling официально представила Gatling FrontLine (теперь Gatling Enterprise), версию Gatling Enterprise с дополнительными функциями. [1]

Программное обеспечение предназначено для использования в качестве инструмента нагрузочного тестирования для анализа и измерения производительности различных сервисов с упором на веб-приложения , API и микросервисы.

Гатлинг дважды упоминался в журнале ThoughtWorks Technology Radar, в 2013 и 2014 годах. [2] «как инструмент, который стоит попробовать», [2] с акцентом на «интересную предпосылку рассматривать ваши тесты производительности как производственный код ». [2]

Последним второстепенным выпуском является Gatling 3.11, опубликованный 23 апреля 2024 г. [3]

Gatling Corp разрабатывает инструмент тестирования производительности веб-приложений с открытым исходным кодом Gatling и его корпоративную версию Gatling Enterprise. Цели проекта включают в себя:

  • Высокая производительность
  • Готовые HTML-отчеты
  • Удобные для разработчиков DSL для Java, Scala, Kotlin, JavaScript и TypeScript.

Терминология

[ редактировать ]
  • Моделирование: файл моделирования включает в себя различные сценарии испытания, его параметризацию и профили введения . Технически говоря, симуляция — это класс Scala . [4] Вот примеры моделирования на Java и JavaScript: [5] [6]
//Java

public class ComputerDatabaseSimulation extends Simulation {

  HttpProtocolBuilder httpProtocol =
    http.baseUrl("https://computer-database.gatling.io")
      .acceptHeader("application/json")
      .contentTypeHeader("application/json");

  ScenarioBuilder myFirstScenario = scenario("My First Scenario")
    .exec(http("Request 1")
      .get("/computers/"));

  {
    setUp(
      myFirstScenario.injectOpen(constantUsersPerSec(2).during(60))
    ).protocols(httpProtocol);
  }
}
//JavaScript 

export default simulation((setUp) => {

  const httpProtocol =
    http.baseUrl("https://computer-database.gatling.io")
      .acceptHeader("application/json")
      .contentTypeHeader("application/json");

  const myScenario = scenario("My Scenario")
    .exec(http("Request 1")
      .get("/computers/"));

  setUp(
    myScenario.injectOpen(constantUsersPerSec(2).during(60))
  ).protocols(httpProtocol);
});
  • Сценарий: Сценарий состоит из серии запросов . Каждый сценарий в моделировании может иметь свой собственный профиль впрыска . [7] Вот пример сценария: [5] [6]
//Java

ScenarioBuilder myFirstScenario = scenario("My First Scenario")
    .exec(http("Request 1")
      .get("/computers/"));

  {
    setUp(
      myFirstScenario.injectOpen(constantUsersPerSec(2).during(60))
    ).protocols(httpProtocol);
  }
//JavaScript

const myScenario = scenario("My Scenario")
    .exec(http("Request 1")
      .get("/computers/"));

  setUp(
    myScenario.injectOpen(constantUsersPerSec(2).during(60))
  ).protocols(httpProtocol);
});
  • Группа: группы можно использовать как подразделение сценария . Это также серия запросов , имеющая функциональное назначение (например, процесс входа в систему).
  • Пожелание: Gatling способен моделировать сложное поведение пользователей. Для этого он генерирует соответствующие запросы в тестируемой системе. Вот пример запроса в Гатлинге: [5] [6]
//Java

.exec(http("Request 1")
    .get("/computers/"));
//JavaScript
.exec(http("Request 1")
      .get("/computers/"));
  • Профиль внедрения. Профиль внедрения — это количество виртуальных пользователей, внедренных во время теста в тестируемую систему, и способ их внедрения. Вот пример профиля инъекции: [5]
//Java 

    setUp(
      myFirstScenario.injectOpen(constantUsersPerSec(2).during(60))
    ).protocols(httpProtocol);
//JavaScript
setUp(
    myScenario.injectOpen(constantUsersPerSec(2).during(60))
  ).protocols(httpProtocol);

Архитектура

[ редактировать ]

Гатлинг реализовал совершенно новую архитектуру инструмента тестирования производительности, чтобы обеспечить более эффективное использование ресурсов. [8] Это позволяет моделировать большое количество запросов в секунду на одной машине. [9]

Компоненты

[ редактировать ]

Регистратор

[ редактировать ]

В комплект поставки Gatling входит записывающее устройство для запуска симуляции.

Язык, специфичный для предметной области

[ редактировать ]

Гатлинг снабжен простым [10] и легкий [2] Специализированный язык , на котором кодируются симуляции и сценарии. Это позволяет пользователям добавлять собственное поведение с помощью множества хуков. [11] Это делает сценарии моделирования читабельными и простыми в обслуживании. [12]

В 2024 году Гатлинг представил новый DSL (SDK) для JavaScript и TypeScript. [13] SDK JavaScript и TypeScript использует GraalVM для трансляции кода JavaScript в Java и выполнения нагрузочных тестов на JVM . Добавление поддержки JavaScript и TypeScript делает Gatling первым на рынке многоязычным инструментом нагрузочного тестирования.

Гатлинга доменно-ориентированный язык Это пример того, как выглядит (см. также § Терминологию ):

val scn = scenario("BasicSimulation")
  .exec(http("request_1")
  .get("/"))
  .pause(5)

HTML-отчеты

[ редактировать ]

В конце каждого теста Гатлинг генерирует отчет в формате HTML. Отчеты включают в себя: [14]

  • Активные пользователи с течением времени
  • времени отклика Распределение
  • времени ответа Процентили с течением времени
  • Запросов в секунду с течением времени
  • Ответов в секунду с течением времени

Поддержка протоколов и плагины

[ редактировать ]

Он официально поддерживает следующие протоколы:

В документации Гатлинга указано, что он не зависит от протокола, что позволяет реализовать поддержку других протоколов. [15] Вот неисчерпывающий список поддерживаемых протоколов сообщества:

Gatling выпускает официальные плагины и плагины сообщества. Он интегрируется с:

Вот неполный список плагинов сообщества:

Непрерывная интеграция

[ редактировать ]

Автоматизация с помощью Gatling связана с удобством сопровождения моделирования. [16] Интеграция с другими инструментами разработки, особенно в жизненном цикле DevOps , позволяет индустриализировать тесты производительности, то есть полностью автоматизировать проведение кампаний по тестированию производительности в процессе разработки программного обеспечения .

Основные и второстепенные релизы

[ редактировать ]
Версия [17] Дата выпуска
3.11.1 25 апреля 2024 г.
3.10.3 21 декабря 2023 г.
3.9.5 10 мая 2023 г.
3.0.0 23 октября 2018 г.
2.3.0 30 августа 2017 г.
2.2.0 15 апреля 2016 г.
2.1.0 15 декабря 2014 г.
2.0.0 6 октября 2014 г.
1.5.0 6 мая 2013 г.
1.4.0 20 декабря 2012 г.
1.3.0 19 сентября 2012 г.
1.2.0 31 мая 2012 г.
1.1.0 26 марта 2012 г.
1.0.0 13 января 2012 г.

Лицензирование

[ редактировать ]

«Гатлинг» публикуется под лицензией Apache License 2.0 . [18] разрешительная , лицензия на бесплатное программное обеспечение написанная Apache Software Foundation (ASF). [19]

Исходный код доступен на GitHub .

Гатлинг Энтерпрайз

[ редактировать ]

Gatling Enterprise — коммерческая версия Gatling. Gatling Enterprise является проприетарным программным обеспечением . Распространяется компанией Gatling Corp.

Компания

[ редактировать ]

Gatling начался как проект с открытым исходным кодом в 2012 году. 3 года спустя, в 2015 году, его основатель Стефан Ландель создал специализированную компанию под названием Gatling Corp.

Истоки проекта с открытым исходным кодом

[ редактировать ]

Gatling был разработан Стефаном Ланделем, когда он был техническим директором (CTO) французской ИТ-консалтинговой фирмы eBusiness Information.

Создание специализированной компании

[ редактировать ]

В 2015 году была создана специализированная компания. Он предоставляет пользователям Gatling профессиональные услуги, а с 2016 года — корпоративную версию Gatling, Gatling FrontLine.

Компания базируется в Банье , Франция, недалеко от Парижа.

Gatling Corp является членом Systematic Paris-Region , Иль-де-Франс, бизнес-кластера созданного в 2005 году. [20] посвящен сложным системам и ИКТ . [21] Систематический Парижский регион объединяет большие группы, МСП, университеты и исследовательские лаборатории для продвижения цифровых инноваций. Гатлинг является членом рабочей группы по открытому коду Systematic и был избран членом Systematic совета директоров как представитель малого и среднего бизнеса в ноябре 2016 года.

Компания приняла участие в некоторых мероприятиях, таких как Парижский саммит по открытому коду (POSS, выпуски 2015, 2016 и 2017 годов), симпозиум Liferay 2016 года, встречи группы пользователей Java (JUG), Парижской группы пользователей Гатлинга и Нью-Йоркской конференции. Группа пользователей Гатлинга.

См. также

[ редактировать ]
  1. ^ «Вечер презентации Gatling FrontLine» . Группа пользователей Gatling Paris (на французском языке). Встреча . Проверено 1 сентября 2017 г.
  2. ^ Jump up to: а б с д Родриго Толледо (12 мая 2014 г.). «Гатлинг: поднимите свои тесты производительности на новый уровень» . Блог . МысльВоркс . Проверено 1 сентября 2017 г.
  3. ^ «Что нового в версии 3.11» . 11 февраля 2023 г.
  4. ^ Людмил Латинов (9 июня 2017 г.). «Тестирование производительности с помощью Гатлинга» . Автоматизированная рапсодия . Проверено 1 сентября 2017 г. «Моделирование» — это настоящий тест. Это класс Scala, расширяющий класс io.gatling.core.scenario.Simulation Гатлинга. В моделировании создан экземпляр объекта протокола HTTP и настроены с соответствующими значениями, такими как URL-адрес, параметры заголовка запроса, аутентификация, кэширование и т. д. Моделирование имеет один или несколько «сценариев».
  5. ^ Jump up to: а б с д Gatling Corp. «Документация Gatling. Создайте свою первую симуляцию на основе Java» . Компания Гатлинг . Проверено 12 января 2018 г.
  6. ^ Jump up to: а б с «Создайте свою первую симуляцию на основе JavaScript» . Документация Гатлинга . 16 декабря 2023 г. Проверено 23 июля 2024 г.
  7. ^ Людмил Латинов (9 июня 2017 г.). «Тестирование производительности с помощью Гатлинга» . Автоматизированная рапсодия . Проверено 1 сентября 2017 г. Сценарий представляет собой серию HTTP-запросов с разными действиями (POST/GET) и параметрами запроса. Сценарий — это фактический путь выполнения пользователя. Он настроен с учетом количества пользователей и схемы нарастания нагрузки. Это делается в методе моделирования «setUp». Несколько сценариев могут образовывать одну симуляцию.
  8. ^ Шива Прасад Рао Джанапати (1 февраля 2017 г.). «Гатлинг: легкий инструмент нагрузочного тестирования» . Зона производительности . ДЗона . Проверено 1 сентября 2017 г. Гатлинг потребляет меньше системных ресурсов для запуска нагрузочного теста, чем другие варианты.
  9. ^ Людмил Латинов (9 июня 2017 г.). «Тестирование производительности с помощью Гатлинга» . Автоматизированная рапсодия . Проверено 1 сентября 2017 г. Он способен создавать огромный объем трафика из одного узла.
  10. ^ Шри Теджасви (4 января 2017 г.). «Введение в нагрузочное тестирование с помощью Gatling» . Зона DevOps . ДЗона . Проверено 1 сентября 2017 г. Это простой в установке инструмент, в котором моделирование и сценарии написаны на простом предметно-ориентированном языке (DSL).
  11. ^ «Шпаргалка» . 20 апреля 2021 г.
  12. ^ Шри Теджасви (4 января 2017 г.). «Введение в нагрузочное тестирование с помощью Gatling» . Зона DevOps . ДЗона . Проверено 1 сентября 2017 г. Таким образом, вы можете генерировать читаемый и простой в обслуживании код теста производительности.
  13. ^ «JavaScript SDK | Блог Гатлинга» . gatling.io . Проверено 24 мая 2024 г.
  14. ^ Шри Теджасви (4 января 2017 г.). «Введение в нагрузочное тестирование с помощью Gatling» . Зона DevOps . ДЗона . Проверено 1 сентября 2017 г.
  15. ^ «Гатлинг» . Документация . Компания Гатлинг . Проверено 1 сентября 2017 г. Поскольку основной механизм фактически не зависит от протокола, вполне возможно реализовать поддержку других протоколов.
  16. ^ Федерико Толедо (12 июля 2016 г.). «Обзор инструмента Gatling для тестов производительности (написано на Scala)» . Зона производительности . ДЗона . Проверено 1 сентября 2017 г. Язык Scala и DSL Гатлинга в значительной степени ориентированы на облегчение сопровождения тестов, что идеально, если вы сосредотачиваетесь на непрерывной интеграции.
  17. ^ «Вехи» . Репозиторий Гатлинга . Гитхаб . Проверено 1 сентября 2017 г.
  18. ^ «Лицензия» . Репозиторий Гатлинга . Гитхаб . Проверено 1 сентября 2017 г.
  19. ^ Права на новые медиа (12 сентября 2008 г.). «Руководство по лицензированию открытого исходного кода» . Калифорнийская Западная юридическая школа . Проверено 28 ноября 2015 г. «BSD-подобные» лицензии, такие как лицензии BSD, MIT и Apache, чрезвычайно либеральны и требуют немного больше, чем приписывание исходных частей лицензионного кода первоначальным разработчикам в вашем собственном коде и/или документации.
  20. ^ (на французском языке) Систематический Париж-Регион. Архивировано 17 февраля 2013 г. на archive.today.
  21. ^ (на французском языке) Кто мы?
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 364d86d9632feb9ddda75c88560092fb__1721716080
URL1:https://arc.ask3.ru/arc/aa/36/fb/364d86d9632feb9ddda75c88560092fb.html
Заголовок, (Title) документа по адресу, URL1:
Gatling (software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)