La taverne du testeur

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 *

Avenir

Perspectives 2024 pour les testeurs

Une nouvelle année commence et avec elle l’exercice complexe de prédiction des évolutions! Dans cet article je vais aborder quelques points qui devraient, selon moi, animer l’année 2024 (et les suivantes des testeurs). L’IA en croissance exponentielle L’année 2023 a apporté pas mal de changements, pas dans les pratiques, mais

Lire la suite »
Données

La gestion des jeux de données – Antoine Brebant

La gestion des jeux de données est au centre de nos stratégies de tests et représente souvent un budget conséquent. Ces jeux de données se doivent d’être pertinents, c’est-à-dire représentatifs de la réalité pour une application donnée. Dans tout système, les données sont stockées dans différents formats, types, emplacements et

Lire la suite »