NBomber — это открытый .NET-фреймворк, открытый протокол — Apache 2.0, NBomber используется для загрузочного тестирования различных сервисов, включая веб, очереди сообщений, базы данных и др. Версия NBomber 2.0 была выпущена в мае этого года. NBomber похож на JMeter, но отличие от JMeter в том, что NBomber выражает тестовые сценарии через код F#/C#/JSON.
Основная цель NBomber — предоставить лёгкий фреймворк для написания нагрузочных тестов, который можно использовать для тестирования любой системы и моделирования производственной нагрузки. Мы просто хотим добавить некоторую абстракцию, чтобы описывать любой тип полезной нагрузки и при этом иметь простой и интуитивно понятный API. Другая цель — предоставить строительные блоки для валидации вашего проекта POC (доказательства концепции), применяя любое сложное распределение нагрузки. С помощью NBomber вы можете протестировать любую PULL или PUSH-систему (HTTP, WebSockets, GraphQl, gRPC, SQL Databse, MongoDb, Redis и др.). С помощью NBomber можно легко преобразовать некоторые интеграционные тесты в нагрузочные тесты.
NBomber как современный фреймворк предоставляет:
- Протоколы с нулевой зависимостью (HTTP/WebSockets/AMQP/SQL)
- Нулевая зависимость от семантических моделей (Pull/Push)
- Очень гибкая конфигурация и очень простой API (f#/c#/json)
- Поддержка кластера
- Отчётность в реальном времени
- Интеграция CI/CD
- Поддержка потока данных
Адрес на GitHub:Вход по гиперссылке виден. Адрес документа:Вход по гиперссылке виден.
Сначала создайте новый консольный проект на .NET Core 3.1 и используйте nuget для установки следующего пакета:
Чтобы получить максимальную производительность от NBomber, следует отредактировать настройки проекта следующим образом:
Настройки сборки мусора GarbageCollection должен переключиться на серверный и конкурентный режим:
Полная подготовка проекта:
Проверьте отправку GET-запроса на этот сайт и установите пользовательский заголовок запроса со следующим кодом:
Программа автоматически сгенерирует тестовый отчёт в каталоге bin\Debug\netcoreapp3.1\reports\, как показано на рисунке ниже:
(Конец)
|