RousselTMLEARNING

DevOps

Tests de charge avec Grafana k6 : pourquoi et quels types de tests

Pourquoi tester la performance avant la production, les types de tests (smoke, charge, stress, pic, endurance, point de rupture) et les atouts de Grafana k6.

1. Pourquoi tester la charge ? #

Découvrir les limites avant les utilisateurs.

Les questions auxquelles répond un test #

  • Le service tient-il le trafic attendu avec la latence promise (SLO) ?
  • Où se situe le point de rupture, et comment le service casse-t-il (lentement, brutalement) ?
  • Une nouvelle version est-elle plus lente que la précédente ?
  • La mise à l'échelle automatique réagit-elle assez vite ?
À savoir : Un test de charge n'a de valeur que s'il est observé : métriques, traces et profils du système testé expliquent ce que le test mesure. C'est pourquoi cette formation relie k6 à Prometheus et Grafana.

2. Les types de tests #

Une même base de script, plusieurs profils de charge.

Panorama #

Types de tests
Ordres de grandeur indicatifs, à adapter au trafic réel.
TypeObjectifDurée typique
SmokeVérifier que le script et le service fonctionnent (1 à 5 utilisateurs)1 min
Charge moyenne (load)Valider le comportement sous trafic normal15 à 60 min
StressObserver le comportement au-delà du trafic normal15 à 60 min
Pic (spike)Encaisser une hausse brutale (soldes, annonce)Quelques minutes
Endurance (soak)Détecter fuites mémoire et dégradations lentesPlusieurs heures
Point de rupture (breakpoint)Trouver la capacité maximaleJusqu'à la rupture

3. Pourquoi k6 ? #

Un outil pensé pour les développeurs.

Atouts #

CaractéristiqueDétail
Scripts en JavaScript / TypeScriptVersionnés avec le code, relus en pull request
Moteur en GoDes milliers d'utilisateurs virtuels sur une seule machine
Seuils (thresholds)Le test échoue automatiquement si un objectif n'est pas atteint : idéal en CI
Sorties multiplesPrometheus, OpenTelemetry, JSON, CSV, Grafana Cloud
ProtocolesHTTP, WebSocket, gRPC, navigateur réel (module browser) et extensions (Kafka, SQL...)
# Installation
brew install k6                                  # macOS
sudo apt install k6                              # Debian/Ubuntu (dépôt k6)
docker run --rm -i grafana/k6 run - < script.js  # sans installation
À savoir : k6 est open source (AGPLv3), maintenu par Grafana Labs. La version 1.0, publiée en 2025, a stabilisé l'API et apporté la prise en charge native de TypeScript.

Articles liés

Écrire des scripts k6 : requêtes, vérifications, scénarios et exécuteurs

La structure d'un script k6 (init, setup, default, teardown), les requêtes HTTP, les checks, les groupes et t…

Seuils, métriques et résultats d'un test k6

Lire le résumé d'un test k6, comprendre les métriques intégrées (http_req_duration, http_req_failed, iteratio…

Observer un test k6 : Prometheus, Grafana et corrélation avec le système testé

Envoyer les résultats de k6 dans Prometheus (remote write) ou en OpenTelemetry, les visualiser dans Grafana e…

Pour aller plus loin