La performance est un élément essentiel dans la mise à disposition d’un service auprès de vos utilisateurs. Bien souvent dans les projets, des campagnes de tests de performances sont créées et des outils comme JMeter, Gatling ou encore des suites complètes telles que proposées par HP Performance Tester ou IBM Rational Performance Tester. Ces outils permettent une analyse détaillée de la tenue de la charge de votre application (Front ou Back) en simulant une montée en charge progressive et fournissent des rapports complets sur les différents temps de réponse, mais aussi pour certains la consommation de ressource de votre application (CPU, mémoire) une fois sous la charge.
Cependant, il y a des moments ou l’on souhaite effectuer des tests de charge unitaires sans forcément devoir passer plusieurs jours à écrire des scenarii de tests. Les développeurs veulent pouvoir tester rapidement la charge sur le service développé de façon simple et rapide. Simuler un nombre d’opération par seconde et voir le résultat. C’est là que Hey entre en jeu. Cet outil très léger n’a qu’une seule mission : simuler des appels sur une URL donnée et vous retourner en quelques secondes les temps de réponses sur les requêtes effectuées ainsi que les codes retour. Cet outil devient un allié pour les développeurs d’API et permet donc d’ajuster les développements assez tôt dans le cycle de vie de l’application.
Voyons ensemble comment utiliser cet outil.
Un binaire et c’est tout
Comme indiqué en introduction, l’avantage de Hey est sa simplicité et légèreté. Pour l’utiliser il vous suffit de télécharger le binaire sur le Github du projet. Décompressez le à l’emplacement de votre choix.
Pour utiliser l’outil, indiquez le nombre de requête et le nombre de thread :
hey -n <nb_requete> -c <nb_thread> <url>
Pour vérifier vos temps de réponse
Hey vous fourni diverses statistiques sur votre test de charge. Un histogramme vous indiquera la distribution de vos temps de réponses.
Ou tester vos Circuit Breaker
Hey vous indique également les codes retours HTTP de chacune des requêtes. Ainsi il devient aisé de tester un circuit breaker par exemple avec limitation du nombre de connexions simultanées à un service.
En relançant la même commande avec un thread de plus, nous augmentons légèrement le nombre de requête par seconde, suffisamment pour déclencher l’ouverture du circuit breaker. Ainsi nous remarquons que sur les 40 requêtes jouées, 6 ont été refusées.
Pour conclure
Comme vous venez de le voir, Hey est donc un outil simple, léger, qui vous permet de rapidement mettre en oeuvre un test de charge. Sa synthèse courte vous indiquera les différents temps de réponse de votre service ce qui en fera un outil pratique pour tout développeur.