k6 (Grafana)
Testing 🟡 MidDéfinition
Outil de test de charge open source de Grafana Labs : les scénarios s'écrivent en JavaScript ou TypeScript, exécutés par un moteur Go très économe (des milliers d'utilisateurs virtuels par machine, sans Node.js). La version 1.0, publiée le 7 mai 2025, apporte le TypeScript natif, le versionnage sémantique et un module navigateur stable. Les « thresholds » transforment le test en garde-fou CI.
Analogie
Une simulation d'ouverture des portes un jour de soldes : on envoie une foule virtuelle et on regarde quelles caisses saturent.
Exemple de code
// load.js → k6 run load.js
import http from 'k6/http';
import { check, sleep } from 'k6';
export const options = {
stages: [{ duration: '1m', target: 50 }, { duration: '3m', target: 50 }, { duration: '30s', target: 0 }],
thresholds: {
http_req_duration: ['p(95)<300'], // p95 sous 300 ms sinon échec
http_req_failed: ['rate<0.01'], // < 1 % d'erreurs
},
};
export default function () {
const res = http.get('https://api.example.com/products');
check(res, { 'status 200': (r) => r.status === 200 });
sleep(1);
}
Cas d'usage
Vérifier avant une mise en production qu'un endpoint tient le trafic attendu, et détecter les régressions de performance en CI.
Anti-pattern
Lancer le test de charge depuis son poste contre la production sans prévenir : on crée l'incident qu'on voulait éviter.
Termes liés
Fiche mise à jour le 2026-09-27