k6 - La meilleure expérience développeur pour les tests de charge

L'industrie des tests de performance a connu une transformation radicale ces dernières années. Traditionnellement, les tests de charge ont été effectués par des ingénieurs de test de performance, ainsi que par des ingénieurs et des testeurs d'assurance qualité. Ces rôles fonctionnaient généralement comme des unités indépendantes, effectuant des tests de performances une fois que les développeurs avaient fini de créer les applications.

Avec l'adoption de principes agiles parmi les équipes de développement logiciel, les tests de performance en tant qu'activité commencent beaucoup plus tôt dans le processus de développement, ce que l'on appelle test de décalage gauche . Au lieu de laisser les tests de performance au département QA, les équipes logicielles effectuent désormais leurs tests de manière indépendante ou en collaboration avec les ingénieurs QA.

Un autre avantage du déplacement des tests vers la gauche est une augmentation croissante de l'adoption des tests de performance dans les équipes logicielles. Mais bon nombre de ces nouveaux utilisateurs exigent des outils qui s'intègrent parfaitement à leur flux de travail quotidien , leur permettant de tester régulièrement avec un minimum d'effort. Les outils traditionnels tels que JMeter et LoadRunner ne correspondaient pas très bien, et au lieu de cela, ils se tournent vers une nouvelle génération d'outils, comme k6.




Dévoilement de K6

k6 est un gratuit et outil de test de charge open source visant à faire des tests de performance une expérience productive et agréable.

L'outil est scriptable et les tests k6 sont écrits en Javascript , donnant la possibilité d'écrire vos tests dans l'un des langages de programmation les plus connus.


Un puissant langage de script et une API offrent la flexibilité nécessaire pour imiter des scénarios du monde réel dans vos scripts. Étant donné que les applications et les systèmes évoluent continuellement, la possibilité de modulariser vos tests améliorera considérablement l'efficacité de votre processus de test.

img / performance / 81 / k6-the-best-developer-experience.png

k6 est un outil de ligne de commande disponible pour Windows, Linux et Mac. Alternativement, il existe une image Docker officielle.

Exécuter un test de performances avec k6 est aussi simple que d'exécuter une commande bash:


img / performance / 81 / k6-la-meilleure-experience-développeur-2.png

Quelques fonctionnalités de script notables sont:

  • API Javascript robustes et bien documentées pour les scripts de test
  • Personnalisation profonde grâce à plusieurs options de configuration
  • Scénarios
  • Paramétrage via des variables d'environnement
  • Prise en charge des Websockets
  • Crochets de cycle de vie pour personnaliser la configuration et le démontage
  • Contrôles, métriques, tags, cookies…


Enregistreur de session et convertisseurs

En tant qu'outils de test de charge les plus sophistiqués, k6 dispose d'un enregistreur de session qui facilite la création de tests de charge à partir d'une session utilisateur. Il vous suffit de fournir un fichier HAR à partir d'un navigateur ou d'une session utilisateur, et l'enregistreur créera le test k6 pour vous. Ceci est particulièrement utile si vous êtes sites de test de charge .

De plus, d'autres outils peuvent vous aider à générer automatiquement des tests k6 à partir de différentes technologies:


  • Convertisseur JMeter: convertissez un fichier JMeter .jmx en script k6.
  • Convertisseur Postman: convertissez une collection Postman en script k6.
  • Convertisseur OpenAPI: convertissez la spécification Swagger / OpenAPI en script k6.
  • Extension de navigateur: générez un script k6 à partir d'une session de navigateur. Uniquement disponible pour les utilisateurs du cloud k6.

Bien que vous n'ayez pas besoin d'utiliser l'enregistreur et les convertisseurs pour commencer les tests, ces outils peuvent vous aider à intégrer votre équipe dans k6 ou à créer un script de vos tests plus rapidement.

Enregistreur et convertisseur de session



Visualisation des résultats

Par défaut, k6 envoie le résultat à la console. De plus, plusieurs intégrations sont disponibles pour vous aider lors de l'analyse et de la visualisation de vos résultats de test:

  • Apache Kafka
  • Nuage k6
  • DataDog
  • InfluxDB + Grafana
  • JSON
  • NewRelic
  • StatistiquesD

img / performance / 81 / k6-la-meilleure-experience-développeur-4.png




Tests continus et automatisés

Dans la communauté des tests, l'automatisation est l'objectif final de nombreuses organisations. Lorsque votre application et votre système changent, l'automatisation et l'exécution de tests fréquents vous aideront à détecter les régressions de performances plus tôt.

La documentation fournit des guides pour les outils CI / CD les plus populaires, vous permettant d'intégrer sans effort k6 dans vos pipelines CI.

  • Pipelines Azure
  • CircleCI
  • Actions GitHub
  • GitLab
  • Jenkins
  • TeamCity

L'équipe k6 croit que faire test axé sur les objectifs est une condition indispensable à l'automatisation. Lors de l'exécution de tests automatisés, l'objectif principal de votre test doit être d'abord de valider les attentes de performances de votre système et, ensuite, de vous alerter si le système n'atteint pas les objectifs de performances. Par exemple, en validant que:

  • Le temps de réponse pour 95% des requêtes n'est pas supérieur à 600 ms.
  • Le système ne produit pas plus de 0,5% d'erreurs.

Dans k6, vous définissez ces attentes avec Seuils dans votre test. Si votre système ne les atteint pas, k6 vous informera de l'échec en renvoyant un code de sortie différent de zéro.


img / performance / 81 / k6-la-meilleure-experience-développeur-5.png

Si vous souhaitez en savoir plus sur ce sujet, lisez le guide k6 pour automatisation des tests de performance et la documentation sur les seuils.



Nuage k6

Nuage k6 est le produit SaaS commercial qui accompagne l'outil open-source k6. k6 OSS est gratuit et dispose de plusieurs intégrations pour gérer les tests de charge dans votre propre infrastructure. Le cloud k6 est un service optionnel qui fournit l'infrastructure et les systèmes de test de charge pour vous aider dans vos efforts de test de performance.

Pour mieux comprendre ce qu'est le cloud k6, énumérons quelques-unes de ses fonctionnalités:

  • Échelle des tests horizontalement et dans différents emplacements géographiques.
  • Stockez et visualisez les résultats des tests.
  • Détectez automatiquement les problèmes de performances.
  • Corréler les résultats entre les différents tests.
  • Intégrez les utilisateurs avec le générateur de test GUI.
  • Organisez les équipes et les tests dans un emplacement central.
  • Fournir un support dédié.

Nuage k6



Communauté

La communauté k6 est véritablement solidaire et utile - la force derrière le succès du projet.

Si vous commencez par k6, n'oubliez pas de les joindre en Mou ou la Forum de la communauté pour tout type de questions. Il existe plusieurs canaux et catégories pour différents sujets tels que #grafana, #documentation, #feedback, #discussion, etc.

Pour ceux qui s'intéressent aux internes du projet, suivez le projet en GitHub .



Conclusion

Cet article vise à présenter une introduction de k6 - l'un des outils de test de charge les plus passionnants. Si vous voulez savoir ce que K6 a de plus à offrir, nous vous recommandons de lire le Documents k6 .

Avec seulement quatre ans de vie, k6 est devenu riche en fonctionnalités et est en concurrence avec des outils bien établis, gagnant une adoption stellaire dans les développeurs, DevOps et les communautés de test.

L'équipe et la communauté k6 ont créé un outil de test de performances centré sur les développeurs qui répond à la demande et aux besoins d'une nouvelle ère.