Aller au contenu

Télécharger des scripts et fichiers de données k6

Chaque test k6 sur LoadFocus s'exécute à partir d'un script que vous écrivez. L'étape 1 Votre script de test sur la page du nouveau test k6 est l'endroit où vous téléversez ce script, ainsi que tous les fichiers de données qu'il lit au moment de l'exécution.

  • Un script de test k6, écrit en JavaScript (.js) ou TypeScript (.ts). C'est le seul fichier obligatoire.
  • Des fichiers de données, si votre script lit des données externes. Un CSV de comptes utilisateurs ou un JSON de payloads sont les cas les plus courants.

Ouvrez Nouveau test k6. L'étape 1 Votre script de test se trouve en haut de la page. Vous pouvez soit glisser vos fichiers dans la zone de téléversement, soit cliquer sur Télécharger des scripts et fichiers k6 pour les parcourir.

Téléversez le script et ses fichiers de données ensemble. Ils se retrouvent dans le même répertoire lors de l'exécution du test, donc un script qui lit users.csv le trouve juste à côté de lui.

Extension Usage typique
.js Votre script de test k6
.ts Un script de test TypeScript
.csv Données en lignes, comme des comptes ou des termes de recherche
.json Payloads structurés ou fixtures
.txt Données en texte brut
.env, .properties Valeurs de configuration que votre script lit

Vous pouvez importer jusqu'à 10 fichiers par test, chacun jusqu'à 100 Mo.

k6 lit les fichiers avec open(), et le fichier se trouve à côté de votre script, donc un chemin relatif suffit. Chargez les données une seule fois dans l'étape d'init plutôt qu'à chaque itération, afin que chaque utilisateur virtuel les partage :

import { SharedArray } from 'k6/data';
import http from 'k6/http';
const users = new SharedArray('users', function () {
return open('./users.csv')
.split('\n')
.slice(1)
.filter(Boolean)
.map((line) => {
const [username, password] = line.split(',');
return { username, password };
});
});
export default function () {
const user = users[Math.floor(Math.random() * users.length)];
http.post('https://example.com/login', {
username: user.username,
password: user.password,
});
}

SharedArray conserve une seule copie des données en mémoire pour tous les utilisateurs virtuels. Sans elle, chaque utilisateur virtuel analyse sa propre copie, ce qui consomme de la mémoire que vous préféreriez consacrer à la charge.

Comment les fichiers se comportent entre les générateurs de charge

Section intitulée « Comment les fichiers se comportent entre les générateurs de charge »

Un test avec suffisamment d'utilisateurs virtuels s'exécute sur plus d'un générateur de charge. Chaque générateur de charge reçoit les mêmes fichiers téléchargés, donc chacun possède sa propre copie de vos données.

Cela importe lorsque vos données ne doivent pas être réutilisées. Si chaque ligne représente un compte ou un coupon à usage unique, deux générateurs de charge peuvent choisir la même ligne, car aucun ne sait ce que l'autre a déjà pris. Lorsqu'une valeur doit être consommée exactement une fois, faites en sorte que le script la demande à un endpoint que vous contrôlez plutôt que de la lire depuis un fichier.

Vos fichiers sont listés sous la zone de téléversement, où vous pouvez supprimer ceux que vous avez ajoutés par erreur et en téléverser un autre. Une fois le script en place, configurez vos utilisateurs virtuels, la durée et les emplacements de test, puis démarrez le test.