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 navigateurUn champ par ligne : fieldName: generator. Utilisez une graine lorsque vous avez à nouveau besoin des mêmes exemples de données.
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.
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.
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.
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.
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.
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.
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.
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.