Développer des tests de charge avec K6 – Vianney Maerte

K6 est un outil gratuit et open source de test de charge orienté développement disponible ici.

Il permet d’exécuter des tests contenant des appels vers une ou plusieurs requêtes http avec différentes options telles que le nombre ou le temps d’itération, le nombre d’utilisateur virtuel devant exécuter le test, …

Il est composé d’un outil en ligne de commande (CLI) permettant d’exécuter des scripts de test développés en JavaScript très simplement grâce aux librairies de K6.

Création et exécution d’un test

Exemple de test de simple appel vers un service :

La ligne de commande permettant de lancer le test :

Résultat d’un test

Le résultat par défaut affiché dans la console :

Dans le résultat de la console, nous pouvons visualiser :

  • Les informations générales du test avec le nom de celui-ci et les options telles que le nombre d’utilisateur virtuel (vus) et le nombre ou durée d’itération.
  • Une barre de progression basé sur le temps d’exécution
  • Le résultat contenant différentes métriques tels que :
    • Le temps d’envoi de la requête
    • Le temps de réception
    • Le temps total de la requête (envoi + réception)

Avec à chaque fois les temps minimum, maximum, moyen, …

K6 peut envoyer les résultats plus détaillés vers différents outils tiers comme :

  • Un fichier csv
  • Un fichier JSON
  • Une base de données influxDB
  • ….

InfluxDB est un système de gestion de base de données orientée séries temporelles (https://www.influxdata.com/products/influxdb/). L’avantage de la sauvegarde de résultats dans une telle base de données est l’exploitation de ceux-ci via une interface de tableau de bord telle que Grafana (https://grafana.com/).

Ci-dessous un exemple de résultat de test k6 dans Grafana :

Paramétrage de l’exécution

K6 permet par de simples paramètres de configurer le mode d’exécution :

  • duration : spécifie le temps d’exécution du test
  • iterations : le nombre de fois que le test doit s’exécuter
  • vus : le nombre d’utilisateurs virtuels concurrents

Exemple de paramétrage d’exécution pour 100 itérations par 10 utilisateurs virtuels concurrents :

Il propose également différentes librairies permettant notamment d’ajouter des :

  • Checks : ajouter des vérifications supplémentaires comme sur le code de retour de la réponse par exemple.
  • Thresholds : permet d’ajouter des critères sur les performances attendues afin de les mettre en évidence, exemple, je souhaite que 95% de mes appels se passent en moins de 300ms.
  • Et plein d’autre choses à découvrir.

Conclusion

K6 est un outil très simple d’utilisation pour les personnes avec un peu de connaissance en développement logiciel. Sa documentation complète permet un apprentissage très rapide. Le large choix d’export de résultat permet une réelle personnalisation.

Nous n’en avons pas parlé mais K6 possède également une version cloud payante permettant de visualiser directement les résultats dans des graphiques.

Il existe également une option permettant de convertir des tests postman en test k6, mais je n’ai jamais utilisé celle-ci.

A propos de l’auteur: Vianney Maerte

Licencié en informatique et système, il est très rapidement passé de développeur à testeur. A ce jour, il est consultant test manager en Belgique et grâce à sa formation technique il porte un grand intérêt à l’automatisation des tests.

2 réponses

  1. Super d’avoir des tutos en français sur des outils d’automatisation des tests !
    Une suggestion : laisser le code au format texte (et non image) pour faciliter le réemploi 🙂
    A bientôt de vous lire j’espère !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

culture générale

Que nous apporte le test ?

L’objet de cet article n’est pas uniquement de parler du But principal des tests. Non, dans cet article je vais plus me pencher sur les raisons instinctives qui font que nous, humains, testons. En d’autres termes: Pourquoi testons-nous ? Nous testons pour nous assurer de la qualité de notre travail

Lire la suite »
Interview

Podcast Qalisty: Acquérir une expertise dans le test logiciel – Marc Hage Chahine

Qalisty est un podcast dédié au métier de testeur animé et créé par Nancaidah TOURE CHAUVIN J’ai récémment eu le plaisir de contribué en tant qu’invité à cette émission que vous pouvez écouter sur ce lien: https://anchor.fm/qalisty/episodes/8—Acqurir-une-expertise-dans-le-test-logiciel—Marc-Hage-Chahine-e1vgnji Pensez à rejoindre le groupe « Le métier du test » si vous souhaitez échanger

Lire la suite »
culture générale

Dépoussiérer la politique de test

On entend rarement parler de la politique de test. En général, je dirais même plus que ce terme est peu utilisé et peu connu des testeurs… Au point de ne pas vraiment savoir ce que c’est. Pour rappel, une politique de test c’est le document qui fait référence en terme

Lire la suite »