Créer des jeux de test avec modèle et graine

Indiquez un champ et son générateur par ligne, puis choisissez le nombre d’enregistrements et le format JSON ou CSV. Réutilisez le même modèle et la même graine pour reproduire le jeu de test.

Fonctionne localement dans votre navigateur
Modèle de luminaire

Un champ par ligne : fieldName: generator. Utilisez une graine lorsque vous avez à nouveau besoin des mêmes exemples de données.

Générateurs pris en charge

fullName, email, uuid, url, word, sentence(8), isoDate, boolean, integer(1,99), decimal(0,1), enum(red,blue), et array(word,3).

Une graine rend la sortie reproductible ; laissez-le vide pour utiliser une graine de navigateur unique. Ce générateur est destiné aux montages, aux démos et aux données de test, et non aux identités de production.

Luminaire généré
Generate fixtures to preview JSON or CSV here.

Les téléchargements sont créés à partir d'un navigateur local Blob. Aucun contenu de luminaire n'est téléchargé sur KivTools.

Données de luminaire utiles sans appel API

Utilisez la sortie pour les états de l'interface utilisateur, les exemples API, les tests de contrat ou une importation rapide dans l'outil JSON → Code. Gardez les vrais noms de clients, e-mails et jetons hors des appareils de test.

Comment construire un fichier de test

Un champ par ligne, écrit sous la forme fieldName: generator. La page transforme cette liste en enregistrements — JSON pour un exemple d’API ou un corps de requête, CSV pour un tableur ou un import de base de données — et signale la ligne fautive au lieu de renvoyer un fichier incomplet.

Une graine fixe toute la suite de valeurs : même modèle, même graine et même nombre d’enregistrements donnent un fichier identique octet par octet, et augmenter le nombre plus tard laisse intacts les enregistrements déjà collés dans vos tests.

  1. Listez les champs nécessaires, un par ligne : id: uuid, name: fullName, plan: enum(free,team,enterprise). Une ligne qui commence par # est ignorée.
  2. Réglez Records entre 1 et 5 000 et indiquez une graine si le fichier doit être reproductible. Laissez la graine vide pour obtenir des données différentes à chaque exécution.
  3. Cliquez sur Generate fixtures. Le nombre d’enregistrements et de champs produits s’affiche au-dessus de la sortie ; un générateur inconnu est signalé dans la ligne d’état et le résultat précédent est effacé.
  4. Basculez Output entre JSON et CSV pour remettre en forme les enregistrements déjà affichés, puis récupérez-les avec Copy output ou Download file (kivtools-mock-data.json ou .csv).

Ce que renvoient les générateurs — et leurs limites

Treize générateurs et les règles entre parenthèses

Le modèle accepte treize générateurs : fullName, email, uuid, url, word, sentence, isoDate, boolean, integer, decimal, enum, array et ip. Les noms ne tiennent pas compte de la casse et les parenthèses sont facultatives quand le générateur ne prend aucun argument : uuid() et uuid sont le même appel.

Les règles se trouvent entre les parenthèses. integer() va de 0 à 100 par défaut et refuse un maximum inférieur au minimum ; decimal() se comporte de même mais arrondit chaque valeur à deux décimales, si bien que decimal(0,0.01) ne peut renvoyer que 0 ou 0.01. sentence() produit 8 mots par défaut et borne son argument à 1–40. array(générateur,nombre) exige exactement deux arguments et produit au plus 100 éléments. enum() demande au moins une option non vide et, comme les options sont séparées par des virgules, une option ne peut pas contenir de virgule.

Ce que fixe la graine, et ce qui la casse

La graine est hachée dans le flux aléatoire : la même graine rejoue toujours les mêmes valeurs — huit enregistrements générés aujourd’hui et huit générés demain sont identiques caractère par caractère. Avec une graine vide, la page mélange l’horloge et Math.random : idéal pour une démonstration ponctuelle, inadapté à un fichier sur lequel un test s’appuie.

Deux détails décident de la stabilité d’un fichier. L’ordre des champs fait partie du flux : déplacer un champ ou l’insérer au milieu modifie toutes les valeurs suivantes — ajoutez donc les nouveaux champs à la fin. Le nombre d’enregistrements, lui, n’en fait pas partie : cinq maintenant et cinquante plus tard, avec la même graine, laissent les cinq premiers intacts.

Fausses personnes, fausses adresses, et le trajet des données

email et url n’utilisent que les domaines réservés example.test, demo.invalid et fixture.local : une adresse générée n’est donc pas livrable ; ip garde le premier octet à 223 ou moins et ne finit jamais par 0 ou 255, ce qui reste dans la plage qu’un analyseur accepte comme adresse d’hôte unicast.

Le modèle, la graine et les enregistrements restent dans l’onglet : une exécution avec un marqueur dans le modèle et dans la graine n’envoie aucune requête le contenant, et le seul trafic sortant de la page est le beacon d’analyse du site lui-même, qui ne voit jamais le fichier. Ces valeurs restent des exemples : identités de production et données clients réelles appartiennent à vos propres systèmes.

Sortie JSON, sortie CSV et taille du fichier

Le JSON est un tableau indenté de deux espaces, prêt à être collé dans un corps de requête ou un module de test. Le CSV commence par une ligne d’en-tête reprenant les noms de champs et entoure chaque cellule de guillemets ; un champ array() est écrit en JSON dans sa cellule, guillemets doublés comme l’exige la RFC 4180.

Changer Output remet en forme les lignes déjà affichées au lieu d’en produire de nouvelles : le JSON que vous lisiez devient le CSV correspondant, avec des valeurs identiques. Le volume ne pose pas de problème : 5 000 enregistrements de cinq champs demandent environ 0,2 seconde et près d’un mégaoctet, et le téléchargement est créé à partir d’un Blob local nommé kivtools-mock-data.json ou kivtools-mock-data.csv.

Outils récents :