Tester rapidement la charge de son API avec oha

Partager
Tester rapidement la charge de son API avec oha

Quand on développe une API, il arrive forcément un moment où l’on veut savoir jusqu’où elle peut tenir la charge. Que ce soit pour valider des performances, anticiper un pic de trafic ou simplement vérifier qu’un endpoint ne s’écroule pas au premier stress test, avoir un outil simple et rapide sous la main est indispensable.

Pendant longtemps, j’utilisais hey pour ce genre de tests. Léger et efficace, il faisait très bien le job… jusqu’à ce que le projet soit progressivement abandonné. Il m’a donc fallu trouver une alternative — et c’est comme ça que je suis tombé sur oha.


Oha, c’est quoi ?

oha est un outil en ligne de commande permettant d’envoyer un grand nombre de requêtes HTTP en parallèle afin de tester les performances d’une API.

Écrit en Rust, il est à la fois rapide, moderne et très simple à prendre en main. Son objectif est clair : fournir une expérience similaire à hey, mais avec un projet maintenu et des performances au goût du jour.


Installation

Bonne nouvelle : l’installation est triviale.

Avec Homebrew (macOS)

brew install oha

Avec Docker

docker run --rm -it --network=host hatoo/oha:latest https://example.com:3000

Pratique si vous ne voulez rien installer localement.


Utilisation de base

Une fois installé, lancer un test est extrêmement simple :

oha https://google.com

Par défaut, oha envoie :

  • 200 requêtes
  • via 50 connexions simultanées

En quelques secondes, vous obtenez un récapitulatif complet des performances.


Comprendre les résultats

À la fin du test, oha affiche un rapport détaillé comprenant notamment :

  • le nombre total de requêtes effectuées
  • le nombre de requêtes par seconde (RPS)
  • les temps de latence (min, max, moyenne)
  • la distribution des temps de réponse
  • les éventuelles erreurs

C’est exactement le type d’informations dont on a besoin pour identifier rapidement un problème de performance.


Personnaliser ses tests

Là où oha devient vraiment intéressant, c’est dans sa capacité à s’adapter à vos besoins.

Par exemple :

oha -n 1000 -c 100 https://google.com
  • -n : nombre total de requêtes
  • -c : nombre de connexions simultanées

Vous pouvez également :

  • définir une durée de test au lieu d’un nombre de requêtes
  • ajouter des headers
  • tester des endpoints authentifiés
  • ou encore simuler différents scénarios de charge

L’ensemble des options est très bien documenté dans le README du projet.


Conclusion

Si vous cherchez un outil simple, rapide et efficace pour tester la charge de votre API, oha est une excellente alternative à hey.

Facile à installer, intuitif à utiliser et suffisamment puissant pour la plupart des cas d’usage, il s’intègre parfaitement dans un workflow de développement moderne.

Un outil à garder sous la main pour tous les développeurs backend 👌

Lire la suite