Biblioteca genérica de pruebas de rendimiento para ejecutar pruebas de carga escritas en .NET C#
- Originalmente dirigido a desarrolladores (y hasta escenarios de casos extremos) para una máxima flexibilidad.
- Pero es bastante fácil usarlo para escribir pruebas de integración, solo para más subprocesos. :)
- NuGet:
Install-Package Viki.LoadRunner -pre
Introducción rápida
La documentación actual está solo en forma de ejemplos de código.
- Está lejos de estar completo, pero en mi opinión debería ser lo suficientemente bueno como para ver si esta herramienta puede ser útil.
Comience con esta pequeña configuración para tener una idea de cómo está configurada.
- Es necesario definir 3 cosas para que la prueba funcione completamente (consulte QuickStartDemo.cs):
- [1] Escriba la implementación del escenario, definiendo el código en sí que se ejecutará simultáneamente varias veces.
- [2][Opcional] Configure cómo se agregan/presentan los resultados.
- [3] Configure la estrategia sobre cómo se ejecuta la prueba (por ejemplo, cuántos subprocesos, cuánto tiempo debe ejecutarse, etc.)
- Caso real y escenario de prueba de carga simple para medir el rendimiento "algo teórico" de un servidor http simple: https://github.com/Vycka/HttpMockSlim/tree/master/tests/HttpMockSlim.LoadTest
HistogramAggregator es una herramienta predeterminada para agregar resultados con dimensiones/métricas definidas
- Dada su flexibilidad, la documentación llevará tiempo hasta que esté lista.
- Hasta entonces, debería ser bastante fácil descubrirlo mediante varios usos en los ejemplos ya disponibles:
- HistogramAggregatorDemo.cs#L30 - WiP
- QuickStartDemo.cs#L64
- RawDataMeasurementsDemo.cs#L59
- AggregationImpactDemo.cs#L39
- BatchAndWaitDemo.cs#L29
- También hay una versión genérica de este histograma para usarlo en sus propios datos personalizados:
new Histogram<T>()
- Viene con pocas dimensiones y métricas genéricas, pero dado el tipo personalizado y la agregación requerida, es posible que sea necesario implementar algunas IDimension<T> e IMetric<T> personalizadas.
Resto del proyecto de demostración:
- Índice
- Demostraciones de funciones específicas (WiP)
- RawDataMeasurementsDemo.cs
- EscenarioFactoryDemo.cs
- Rendimiento del motor (WiP)
- TheoreticalSpeedDemo.cs: rendimiento teórico sin realizar ninguna medición.
- AggregationImpactDemo.cs: rendimiento teórico con canal de agregación adjunto.
Hasta que se complete el proyecto de demostración, también se pueden revisar mis configuraciones desordenadas que uso para depurar:
- src/Playground/Program.cs
TODOS futuros
Si tiene alguna pregunta/sugerencia/etc., no dude en ponerse en contacto conmigo.