k6 2.3.0 met la charge en essai dans la chaine : scripts en JavaScript, seuils qui decident du passage

Résumé

k6 tourne sur un moteur Go et ses scripts s ecrivent en JavaScript ou TypeScript. Un seuil manque fait echouer la passe, les resultats peuvent partir vers Grafana, et la version courante est 2.3.0.

Recommander
Nom
k6
Version
2.3
Tarif
Gratuit
Open source
Open source
Système
WindowsLinuxmacOS
Mis à jour
2026-10-21 12:40

k6 est un outil libre d essai de charge : le moteur est en Go et les scripts d essai s ecrivent en JavaScript ou TypeScript. Il traite l essai de performance comme une part du genie logiciel, donc les scripts vivent dans le depot, les seuils s ecrivent dans le script, la passe se termine par un verdict, et l ensemble s accroche a une chaine.

Un executable, un script

La distribution ressemble a celle de tout outil en ligne de commande : deb, rpm et tar pour Linux, archives x64 et arm64 pour macOS, msi et zip pour Windows, et un seul fichier tourne des qu il est dans le chemin. Le projet est tenu par Grafana Labs, demarre en 2016, arrive chez Grafana Labs avec la jeune entreprise en 2021, sous licence GNU AGPL troisieme version.

Un script est un module JavaScript, et la fonction par defaut exportee est un tour que chaque utilisateur virtuel execute ; les reglages vivent dans un objet options et se remplacent depuis la ligne de commande. TypeScript marche aussi. Le moteur est en Go, et un processus leve un grand nombre d utilisateurs virtuels avec tres peu de memoire, ce qu il ne cesse de mettre en avant.

capture

Seuils : ecrire l objectif de service comme critere

Les seuils sont la ligne entre cet outil et un passage unique pour voir. Ils posent une barre de reussite sur une mesure, et une passe qui la manque rend un etat d echec. Les exemples de la documentation sont concrets.

Critere

Exemple de seuil

Taux d erreur

Sous un pour cent

95e centile de reponse

Sous 200 ms

99e centile de reponse

Sous 400 ms

Un point precis

Toujours dans 300 ms

Les mesures maison prennent des seuils de la meme facon. Comme le code de sortie change avec le resultat, un seuil devient un interrupteur dans une chaine. Les trois etapes officielles vers l automatisation sont : ecrire des seuils pour l essai, automatiser l execution, puis accrocher des alertes aux echecs ; ensuite une personne n est necessaire que lorsque le systeme manque son objectif.

Verifications : des assertions qui n arretent rien

Une verification controle une condition vraie ou fausse, si un code de statut vaut 201 ou si le corps de la reponse a la bonne taille. Elle ressemble a une assertion des cadres d essai habituels, avec une difference : une verification ratee n arrete pas l essai et ne fait pas echouer la passe, elle inscrit seulement le taux d echec comme mesure.

Pour qu une verification bloque vraiment, il faut la coupler a un seuil : la verification recueille les faits, le seuil tire la conclusion. Ce partage laisse une passe de charge collecter tous les echantillons bizarres et finir quand meme sur un oui ou un non net.

Scenarios : plusieurs formes de trafic dans un essai

Un scenario decrit comment utilisateurs virtuels et repetitions sont ordonnes. Un script peut declarer plusieurs scenarios, chacun lancant une fonction differente avec un moteur different, independants et paralleles ; des departs decales donnent un ordre. Chaque scenario porte ses variables d environnement et ses marques, et la synthese separe les resultats par marque.

Ce mecanisme correspond a la forme du trafic reel : concurrence fixe et stable, montee qui ajoute la pression par paliers, pression par taux d arrivee plutot que par nombre d utilisateurs, et pointes et trempages longs. Un script de charge n a donc pas a etre reecrit pour chaque forme.

Protocoles et extensions

Quatre protocoles sont fournis : HTTP/1.1, HTTP/2, WebSocket et gRPC. HTTP/2 monte tout seul, se connecte d abord en HTTP/1.1 et bascule quand le serveur annonce qu il sait, sans toucher au script.

Pour le reste il faut batir son propre fichier. Le projet offre un outil de construction nomme xk6, et la communaute s en est servie pour joindre SQL, Kafka, ZeroMQ et Redis. Les extensions tombent en quatre genres : les extensions JavaScript ajoutent une interface aux scripts, les extensions de sortie envoient les mesures vers un format ou un service propre, les extensions de clefs donnent des acces a un essai, et les extensions de sous-commande ajoutent des commandes sous l espace de noms k6.

Ou vont les resultats

Par defaut une synthese de fin imprime des chiffres agreges. Pour chaque point il existe une sortie en flux, ecrite dans un fichier JSON ou poussee directement vers un service. Le site cite entre autres Prometheus, Mimir, Datadog, New Relic et Timescale, et le tableau de bord web integre trace les courbes en direct.

La chaine est proche de ce a quoi Grafana sert : k6 fabrique du trafic synthetique, Grafana recueille mesures, journaux et traces, et ensemble ils font une seule ligne de temps, pousser avant une mise en ligne et regarder le vrai trafic apres.

Ce que 2.x a change

2.0 fut un nettoyage : les commandes et options abandonnees depuis longtemps sont parties, le chemin du module Go a migre vers une adresse neuve portant v2, et chaque extension a du suivre avec son chemin d import. C est une montee qui casse la compatibilite, et les notes de version le disent nettement.

2.3.0, du 21 septembre 2026, ajoute du pratique : une option scenario pour ne lancer que quelques scenarios d un essai sans toucher au script, une option once qui permet a un script de charge de servir de test de fumee et de test fonctionnel, et un soutien experimental des groupes asynchrones pour que les mesures restent dans le bon groupe apres un await. Un 1.8.2 separe, le 12 octobre, ne corrige que des problemes de securite dans les dependances et n ajoute rien : deux lignes de version courent en parallele, une qui avance et une qui ne prend que des rustines.

A qui cela convient

Les equipes deja sur la pile d observation Grafana rencontrent tres peu de friction : les mesures arrivent dans le meme magasin et les tableaux se partagent. Les developpeurs habitues a garder les essais dans le depot le trouvent plus commode que les outils de charge graphiques, parce qu un script se relit, se reproduit et s embarque dans une chaine.

A l inverse, pour presser une interface une fois et lire un chiffre, la ligne de commande et quelques dizaines de lignes de script restent le chemin le plus court ; il n y a pas d assembleur visuel et il n y en aura pas. L hypothese est que l essai de performance, comme l essai unitaire, revient a ceux qui ecrivent le code.

k6 tire l essai de performance du cote du code : le script est du code, le critere un seuil dedans, le verdict un code de sortie. Un moteur Go fabrique du trafic avec le moins de moyens possible, et l arriere Grafana en fait des courbes lisibles. Demarre en 2016, entre chez Grafana Labs en 2021, plus de trente et un mille etoiles, AGPL troisieme version, et une route qui consiste a eprouver la performance comme on lance des essais unitaires.

k6Téléchargement
Systèmes pris en charge : Windows Linux macOS