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 *

Automatisation

Outil de test: automatisation IHM avec Cypress

Cet article est le premier d’une nouvelle série dans la taverne qui tend à présenter succinctement différents outils de test. Cypress en bref Cypress est un outil d’automatisation de test IHM (Interface graphique) open source concurrent à Selenium qui dispose d’une communauté active et réactive. Cypress propose d’automatiser ses tests

Lire la suite »
culture générale

La maturité des tests: la mesure par l’audit (3/3)

Introduction Les audits représentent probablement la méthode la plus connue pour mesurer la maturité des tests. On parle d’ailleurs souvent d’audits TPI ou TMMi qui peuvent être considérés très lourds en terme d’investissement. Mais les audits ce n’est pas que des audits TPI ou TMMi. La définition ISTQB est celle-ci:

Lire la suite »
Présentation

[STLS 2022] Création et diffusion d’un jeu pour le test

Retrouvez le support de présentation de la conférence « Création et diffusion d’un jeu pour le test » utilisé lors de la STLS de 2022. Cette présentation est un REX de la création des 1001 tests et de sa diffusion Les autres supports de présentations de la STLS sont disponibles ici. Pensez

Lire la suite »