Le but de ce repo est de proposer un ensemble d'outils sous Docker pour mesurer les performances de votre application sous différents scénario de charge.
Permet de mesurer les différentes métriques de votre application et les mettre à disposition en tant qu'API. Pour plus d'informations: https://devblogs.microsoft.com/dotnet/announcing-dotnet-monitor-in-net-6/
Permet d'agréger des données de différentes sources. https://prometheus.io/
Permet de visualiser des métriques grâce à des dashboards facilement personnalisables. https://grafana.com/
Permet de simuler une charge utilisateur selon des plans de test. https://jmeter.apache.org/
Permet de conteneuriser des applications afin de s'abstraire de l'infrastructure sur lesquelles elles fonctionnent.
Vous devez décommenter la partie app et renseigner l'image de votre application
Elle doit exposer le port 80.
Changer le ASPNETCORE_ENVIRONMENT au besoin.
docker-compose up -d
Les identifiants de connexion se trouvent dans le docker-compose.yml
http://localhost:52325/metrics
La target monitor doit être UP.
http://localhost:30000/d/9GEjrXHnk/tdc-app?orgId=1&from=now-15m&to=now
Télécharger la dernière version de JMeter depuis https://jmeter.apache.org/download_jmeter.cgi
Lancer JMeter via jmeter.bat dans le dossier bin (pour Windows)
Ouvrir le plan de test dans le dossier docker/jmeter/plans/Test plan.jmx
Dans un premier temps, nous allons faire un test depuis l'application JMeter pour vérifier que le test est correct, mais pour de vrais tests de charge, il faut passer par le container ou la version en ligne de commande.
Un test se compose de:
- Thread group: Nombre de processus/utilisateur à simuler
- HTTP Header Manager: Permet de paramétrer des headers pour la requête qui va être exécuter
- HTTP Request Local: Permet de configurer la requête qui sera appelée si on veut tester sur une application qui tourne en local.
- HTTP Request Docker: Permet de configurer la requête qui sera appelée si on veut tester sur une application qui tourne sous Docker.
- View Result Tree: Permet de visualiser le résultat des requêtes appelées.
Changer l'url du endpoint dans les HTTP Request
Attention a bien activer le HTTP Request que vous souhaité utiliser et désactiver l'autre.
Vous pouvez lancer le test en cliquant sur la flêche verte.
Vous devriez voir l'impact du test dans Grafana.
Exécuter la ligne docker exec -it tdc-jmeter jmeter -n -t "/var/lib/jmeter/plans/Test Plan.jmx"
pour lancer le test.