k6 (Grafana)

Testing 🟡 Mid

Dé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.
#testing#performance#tooling

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre