Biblioteca genérica de testes de desempenho para execução de testes de carga escritos em .NET c#
- Originalmente destinado a desenvolvedores (e até cenários extremos) para máxima flexibilidade.
- Mas é fácil usá-lo para escrever testes de integração - apenas para mais threads. :)
- NuGet:
Install-Package Viki.LoadRunner -pre
Introdução rápida
A documentação atual está apenas na forma de exemplos de código.
- Está longe de estar concluído, mas na IMO deve ser bom o suficiente para ver se esta ferramenta pode ser útil.
Comece com esta pequena configuração para ter uma ideia de como ela está configurada.
- É necessário definir três coisas para fazer um teste totalmente funcional (consulte QuickStartDemo.cs):
- [1] Escreva a implementação do cenário, definindo o próprio código que será executado simultaneamente várias vezes.
- [2][Opcional] Configure como os resultados são agregados/apresentados.
- [3] Configure a estratégia de como o teste é executado (por exemplo, quantos threads, por quanto tempo ele deve ser executado. Etc...)
- Caso real e cenário de teste de carga simples para medir o desempenho "um tanto teórico" de um servidor http simples - https://github.com/Vycka/HttpMockSlim/tree/master/tests/HttpMockSlim.LoadTest
HistogramAggregator é uma ferramenta padrão para agregar resultados com dimensões/métricas definidas
- Dada a sua flexibilidade, a documentação levará algum tempo até ser concluída.
- Até então - deve ser fácil descobrir através de vários usos em exemplos já disponíveis:
- HistogramAggregatorDemo.cs#L30 - WiP
- QuickStartDemo.cs#L64
- RawDataMeasurementsDemo.cs#L59
- AggregationImpactDemo.cs#L39
- BatchAndWaitDemo.cs#L29
- Há também uma versão genérica deste histograma para usá-lo em seus próprios dados personalizados:
new Histogram<T>()
- Ele vem com poucas dimensões e métricas genéricas, mas dado o tipo personalizado e a agregação necessária, pode ser necessário implementar alguns IDimension<T> e IMetric<T> personalizados
Resto do projeto de demonstração:
- Índice
- Demonstrações específicas de recursos (WiP)
- RawDataMeasurementsDemo.cs
- CenárioFactoryDemo.cs
- Capacidade do motor (WiP)
- TheoreticalSpeedDemo.cs - Rendimento teórico sem fazer nenhuma medição.
- AggregationImpactDemo.cs – Taxa de transferência teórica com pipeline de agregação anexado.
Até que o projeto de demonstração seja concluído, também é possível verificar minhas configurações confusas que uso para depuração:
- src/Playground/Program.cs
Futuros TODOs
Se tiver alguma dúvida/sugestão/etc, não hesite em contactar-me.