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.

Publié par

2 commentaires sur « Développer des tests de charge avec K6 – Vianney Maerte »

  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 !

    Aimé par 1 personne

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s