Универсальная библиотека тестирования производительности для выполнения нагрузочных тестов, написанная на .NET C#.
- Первоначально предназначался для разработчиков (и даже в крайних случаях) для максимальной гибкости.
- Но его достаточно легко использовать для написания интеграционных тестов — просто для большего количества потоков. :)
- NuGet:
Install-Package Viki.LoadRunner -pre
Краткое введение
Текущая документация представлена только в виде примеров кода.
- Он еще далек от завершения, но, по моему мнению, он должен быть достаточно хорош, чтобы понять, может ли этот инструмент быть полезным.
Начните с этой небольшой настройки, чтобы понять, как она настроена.
- Чтобы сделать полностью работающий тест, необходимо определить 3 вещи (см. QuickStartDemo.cs):
- [1] Напишите реализацию сценария, определяя сам код, который будет выполняться одновременно несколько раз.
- [2][Необязательно] Настройте способ агрегирования/представления результатов.
- [3] Настройте стратегию выполнения теста (например, сколько потоков, как долго он должен выполняться и т. д.).
- Реальный случай и простой сценарий нагрузочного тестирования для измерения «в некоторой степени теоретической» производительности простого http-сервера – https://github.com/Vycka/HttpMockSlim/tree/master/tests/HttpMockSlim.LoadTest
HistogramAggregator — это инструмент по умолчанию для агрегирования результатов с определенными параметрами/показателями.
- Учитывая его гибкость, подготовка документации займет некоторое время.
- А пока - это должно быть достаточно легко понять с помощью различных вариантов использования в уже доступных примерах:
- HistogramAggregatorDemo.cs#L30 — WiP
- QuickStartDemo.cs#L64
- RawDataMeasurementsDemo.cs#L59
- AggregationImpactDemo.cs#L39
- BatchAndWaitDemo.cs#L29
- Существует также общая версия этой гистограммы, позволяющая использовать ее с вашими собственными данными:
new Histogram<T>()
- Он поставляется с несколькими общими измерениями и показателями, но, учитывая настраиваемый тип и требуемое агрегирование, может потребоваться реализация некоторых пользовательских IDimension<T> и IMetric<T>.
Остальная часть демо-проекта:
- Индекс
- Демонстрации конкретных функций (WiP)
- RawDataMeasurementsDemo.cs
- СценариоФабрикаДемо.cs
- Двигатель в целом (WiP)
- TheoreticalSpeedDemo.cs — теоретическая пропускная способность без каких-либо измерений.
- AggregationImpactDemo.cs — теоретическая пропускная способность с подключенным конвейером агрегации.
Пока демонстрационный проект не будет завершен, вы также можете проверить мои беспорядочные настройки, которые я использую для отладки:
- src/Playground/Program.cs
Будущие задачи
Если у вас есть какие-либо вопросы/предложения/и т. д., не стесняйтесь обращаться ко мне.