Aller au contenu

Comment exécuter un nouveau test de charge k6

Exécuter un nouveau test de charge k6 avec LoadFocus

Section intitulée « Exécuter un nouveau test de charge k6 avec LoadFocus »

Ouvrez la page Nouveau test k6 (vous devez être connecté), téléversez votre script k6, définissez la charge et les emplacements, puis cliquez sur Lancer le test. LoadFocus exécute votre script dans le cloud avec le binaire k6 standard (v2.3.0).

Deux types de script ou de cible ne fonctionnent pas avec cette version de k6. Les extensions k6 ne sont pas prises en charge : un script qui importe un module k6/x/... échoue avant d'envoyer de la charge. Et une cible HTTPS qui utilise encore TLS 1.2 et n'accepte que des signatures SHA-1 échoue à la négociation TLS, si bien que chaque requête vers cette cible se termine par une erreur (tls: handshake failure).

Configuration d'un test de charge k6

Étapes de configuration d'un nouveau test de charge k6

Section intitulée « Étapes de configuration d'un nouveau test de charge k6 »

La page comporte trois étapes numérotées (1 Votre script de test, 2 Quelle charge ?, 3 Depuis où ?), une section Plus d'options et, en bas, une barre avec le bouton de lancement.

Nous générons automatiquement un nom de test à partir de la date et de l'heure actuelles. Il figure en haut de la page, après Nouveau test :. Cliquez sur le nom ou sur l'icône crayon pour le modifier. Vous pouvez renommer le test à tout moment.

Téléversement d'un script k6

À l'étape 1 Votre script de test, téléversez votre script de test k6 et les fichiers de données qu'il lit. Vous pouvez glisser-déposer des fichiers dans la zone de téléversement ou cliquer sur Télécharger des scripts et fichiers k6. Un test peut contenir jusqu'à 10 fichiers, de 100 Mo chacun au maximum. Types acceptés :

  • .js : votre script de test k6 (obligatoire)
  • .ts : un script k6 en TypeScript
  • .csv, .json, .txt : fichiers de données que votre script lit avec open()
  • .env, .properties : fichiers de configuration

Un seul fichier de script s'exécute par test : regroupez donc les modules locaux dans celui-ci (les modules distants en https:// sont acceptés). Pour la lecture de fichiers de données, voir Télécharger des scripts et fichiers de données k6. Pas encore de script ? Sous la zone de téléversement, Importer depuis cURL, HAR, Postman ou OpenAPI transforme une requête existante en script k6 (voir Importer cURL, HAR, Postman ou OpenAPI dans un test k6), et Décrivez-le et laissez l'IA l'écrire ouvre le générateur de tests par IA. Voir Créer un test de charge avec l'IA.

LoadFocus vérifie votre script à son téléversement :

  • Il doit s'agir d'un fichier .js ou .ts avec un point d'entrée : export default function, ou scenarios dont les entrées nomment leur fonction avec exec. Sans point d'entrée, le script est rejeté.
  • Les avertissements, qui ne bloquent pas le test, signalent un script sans imports k6, sans appels à check() ou sans bloc options, un script qui utilise __ENV ou qui importe un fichier local.

La vérification n'exécute pas votre script : une erreur de syntaxe n'apparaît donc qu'à l'exécution du test.

import http from 'k6/http';
import { check, sleep } from 'k6';
export default function () {
const res = http.get('https://test-api.k6.io/public/crocodiles/');
check(res, {
'status is 200': (r) => r.status === 200,
'response time < 500ms': (r) => r.timings.duration < 500,
});
sleep(1);
}

L'étape 2 Quelle charge ? commence par quatre préréglages :

  • Vérification rapide : quelques utilisateurs, pour vérifier que tout fonctionne.
  • Standard : votre trafic habituel.
  • Pic : vos pics de trafic, pour trouver la limite.
  • Personnalisé : réglez vos propres valeurs ci-dessous.

Chaque carte indique les utilisateurs et la durée totale qu'elle définit, dans les limites de votre offre. Cliquez sur l'une d'elles pour remplir la configuration, puis ajustez-la si besoin.

Sous les préréglages, vous définissez :

  • Utilisateurs virtuels : le nombre d'utilisateurs virtuels simultanés à simuler.
  • Durée (s) : la durée du test.
  • Temps de Ramp-Up : le temps nécessaire pour atteindre le nombre total d'utilisateurs virtuels.

Ouvrez Réglages fins pour Étapes de Ramp-Up (le nombre d'étapes utilisées pour augmenter la charge), pour Exécuter par itérations plutôt que par durée (un nombre fixe d'itérations au lieu d'une durée) et pour Changer les unités de temps, qui permet de saisir la durée en minutes plutôt qu'en secondes. Le graphique de ramp-up montre comment les utilisateurs virtuels sont ajoutés au fil du test, et la ligne en dessous résume l'exécution. Les curseurs s'arrêtent aux limites de votre offre. Avec les itérations, le nombre est le total de tout le test, pas par utilisateur : tous les utilisateurs virtuels démarrent ensemble, le ramp-up n'est pas utilisé et les utilisateurs se partagent les itérations (la ligne indique par exemple "10 utilisateurs se partagent 50 itérations au total et démarrent tous ensemble.").

Avec l'offre Free, les exécutions sont aussi limitées par jour et par site web : voir Limites de l'offre Free.

LoadFocus applique ces valeurs lorsqu'il exécute votre script : elles remplacent donc tout vus, duration ou stages des options propres au script.

À l'étape 3 Depuis où ?, choisissez les emplacements cloud d'où provient la charge (Ajouter un emplacement en ajoute un autre). Chaque emplacement reçoit une valeur de % Trafic, et LoadFocus en déduit le Nombre d'utilisateurs à partir de votre total. Les pourcentages doivent totaliser 100 %. Par exemple :

  • US East (N. Virginia) : 100 % (10 utilisateurs)

Exécuter un test depuis plusieurs emplacements à la fois nécessite une offre Pro ou Enterprise ; les autres offres utilisent un seul emplacement. Consultez la liste des emplacements disponibles.

Dans Plus d'options, vous pouvez ajouter des Critères de réussite/échec, Exécuter selon une planification et Envoyer les résultats vers Datadog, New Relic…, qui envoie les métriques du test vers un outil de surveillance externe : Datadog, New Relic, Dynatrace ou OpenTelemetry. Cliquez sur Gérer les intégrations pour en configurer une.

Après avoir configuré votre test de charge et téléversé votre script k6 :

  • Cliquez sur Lancer le test dans la barre en bas de la page, puis confirmez dans la fenêtre Lancer ce test ?. S'il manque quelque chose, la barre l'indique après Pas encore prêt :.
  • Cliquez sur Enregistrer le brouillon pour enregistrer la configuration sans l'exécuter.

LoadFocus démarre les machines cloud, exécute votre script et vous renvoie les résultats en continu pendant l'exécution. Une fois terminé, voir Analyse des résultats de test de charge k6.

Pour lancer un test k6 enregistré depuis un pipeline CI/CD avec un forfait payant, voir l'API de tests de charge.