Bibliothèque générique de tests de performances pour exécuter des tests de charge écrits en .NET c#
- Initialement destiné aux développeurs (et jusqu'aux scénarios de cas extrêmes) pour une flexibilité maximale.
- Mais assez simple pour l’utiliser pour écrire des tests d’intégration – juste pour plus de threads. :)
- NuGet :
Install-Package Viki.LoadRunner -pre
Introduction rapide
La documentation actuelle est uniquement sous forme d’exemples de code.
- C'est loin d'être terminé, mais à mon avis, cela devrait être suffisant pour voir si cet outil peut être utile.
Commencez par cette petite configuration pour avoir une idée de la façon dont elle est configurée.
- Il faut définir 3 choses pour que le test soit pleinement fonctionnel (voir QuickStartDemo.cs) :
- [1] Implémentation d'écriture du scénario, définissant le code lui-même qui sera exécuté plusieurs fois simultanément.
- [2][Facultatif] Configurez la façon dont les résultats sont agrégés/présentés.
- [3] Configurez la stratégie sur la façon dont le test est exécuté (par exemple, combien de threads, combien de temps il doit s'exécuter, etc...)
- Cas réel et scénario de test de charge simple pour mesurer les performances "quelque peu théoriques" d'un simple serveur http - https://github.com/Vycka/HttpMockSlim/tree/master/tests/HttpMockSlim.LoadTest
HistogramAggregator est un outil par défaut pour agréger les résultats avec des dimensions/métriques définies
- Compte tenu de sa flexibilité, la documentation prendra du temps jusqu'à ce qu'elle soit terminée.
- En attendant, il devrait être assez facile de le comprendre grâce à diverses utilisations dans des exemples déjà disponibles :
- HistogramAggregatorDemo.cs#L30 - WiP
- QuickStartDemo.cs#L64
- RawDataMeasurementsDemo.cs#L59
- AgrégationImpactDemo.cs#L39
- BatchAndWaitDemo.cs#L29
- Il existe également une version générique de cet histogramme pour l'utiliser sur vos propres données personnalisées :
new Histogram<T>()
- Il est livré avec quelques dimensions et métriques génériques, mais étant donné le type personnalisé et l'agrégation requise, il faudra peut-être implémenter des IDimension<T> et IMetric<T> personnalisés.
Reste du projet de démonstration :
- Indice
- Démonstrations spécifiques aux fonctionnalités (WiP)
- RawDataMeasurementsDemo.cs
- ScénarioFactoryDemo.cs
- Moteur tout au long (WiP)
- TheoreticalSpeedDemo.cs - Débit théorique sans effectuer de mesures.
- AggregationImpactDemo.cs - Débit théorique avec pipeline d'agrégation attaché.
Jusqu'à ce que le projet de démonstration soit terminé, on peut également consulter mes configurations compliquées que j'utilise pour le débogage :
- src/Aire de jeux/Programme.cs
Futures TODO
Si vous avez des questions/suggestions/etc, n'hésitez pas à me contacter.