Aller au contenu
SDETRole
SDETRole

Glossaire · Performance

Test de charge

En anglais : Load testing

Également appelé : load test, tests de charge, test de montée en charge

Définition

Test de performance qui soumet un système au trafic réel attendu pour vérifier temps de réponse, taux d'erreur et débit par rapport à des objectifs convenus.

Le test de charge (load testing) soumet un système au trafic que vous attendez réellement, en général le pic de charge normal, et mesure son comportement : percentiles de latence, taux d’erreur, débit et consommation de ressources. La question à laquelle il répond est : « atteint-il ses objectifs de performance sous la charge que nous prévoyons ? » Il ne s’agit pas de faire tomber le système ; ça, c’est le test de stress.

Exemple (k6)

import http from 'k6/http';
import { check, sleep } from 'k6';

export const options = {
  stages: [
    { duration: '2m', target: 100 }, // ramp up to 100 virtual users
    { duration: '10m', target: 100 }, // hold at expected peak
    { duration: '1m', target: 0 },    // ramp down
  ],
  thresholds: {
    http_req_duration: ['p(95)<500', 'p(99)<1200'],
    http_req_failed: ['rate<0.01'],
  },
};

export default function () {
  const res = http.get('https://staging.example.com/api/products');
  check(res, { 'status is 200': (r) => r.status === 200 });
  sleep(1); // think time between iterations
}

Si l’un des seuils est dépassé, k6 se termine avec un code de sortie non nul : le même script peut donc servir de barrière (gate) dans la CI.

Charge, stress, endurance et pic

Type Profil de charge Question à laquelle il répond
Charge Pic attendu, maintenu stable Atteignons-nous les objectifs au pic normal ?
Stress Croissante au-delà de l’attendu Où et comment le système casse-t-il, et se rétablit-il ?
Endurance (soak) Charge normale pendant des heures Se dégrade-t-il avec le temps (fuites, épuisement de pool) ?
Pic (spike) Saut brutal, puis baisse Survit-il à une rafale et revient-il à la normale ?

Bien le faire

  • Modélisez le trafic réel. Utilisez la répartition des endpoints, des tailles de payload et des temps de réflexion observée dans les analytics de production, pas une seule URL martelée en boucle.
  • Utilisez un environnement proche de la production. Les résultats d’une machine de staging sous-dimensionnée ne vous renseignent que sur cette machine.
  • Jugez sur les percentiles, pas sur les moyennes. Une moyenne masque la queue lente dont les utilisateurs se plaignent réellement.
  • Surveillez aussi le côté serveur. CPU, mémoire, connexions à la base de données et profondeur des files d’attente expliquent pourquoi la latence a bougé.
  • Fixez les objectifs d’abord. Sans objectif explicite comme « p95 sous 500 ms à 200 requêtes par seconde », un test de charge produit des chiffres mais aucun verdict.

Saisissez un terme pour rechercher sur SDETRole.

Recherche plein texte par Pagefind · s’exécute dans votre navigateur Ouvrir la page de recherche →