Pour générer des données de test au format CSV, définissez jusqu’à 100 colonnes, choisissez un type de champ pour chacune, puis fixez un nombre de lignes entre 1 et 1 000 000 ainsi qu’une graine. La même graine et les mêmes réglages de colonnes produisent toujours les mêmes lignes, dans tous les navigateurs : un fichier de test peut donc être recréé au lieu d’être conservé. Les noms, e-mails et numéros de téléphone sont fictifs : les e-mails se terminent par @example.test et les numéros anglophones utilisent la plage 555. Chargez ensuite le résultat dans une base de test avec CSV en SQL, ou prenez les fichiers CSV d’exemple documentés si vous avez besoin de cas limites connus plutôt que de volume. La génération a lieu dans votre navigateur ; rien n’est envoyé sur un serveur.
Générer un fichier CSV de test, étape par étape
- Indiquez le nombre de lignes (de 1 à 1 000 000) et une graine. La configuration de départ comporte six colonnes : un
idséquentiel, un nom complet, un e-mail, une date d’inscription en 2024–2025, une formule tirée parmi Free, Pro et Team dans un rapport 6:3:1, et un montant de 0 à 500 avec deux décimales. - Ajoutez, supprimez ou renommez des colonnes et choisissez un type de champ pour chacune. Chaque nom de colonne doit être renseigné et unique.
- Si besoin, fixez une part de cellules vides ou exigez des valeurs uniques par colonne, puis générez et téléchargez le fichier.
Les lignes sont écrites par morceaux dans un worker en arrière-plan, et non en une seule chaîne géante : un fichier d’un million de lignes ne bloque pas la page, et l’annulation arrête le traitement. Un fichier généré est plafonné à 4 Go.
Les types de champs disponibles
| Séquence | Compte à partir d’une valeur de départ (1 par défaut) avec un pas (1 par défaut). Une largeur de remplissage facultative produit des identifiants du type 000001 ; les nombres négatifs ne sont jamais complétés. |
|---|---|
| UUID | Structure de la version 4 définie par la RFC 9562 (xxxxxxxx-xxxx-4xxx-[89ab]xxx-…), tirée du générateur à graine. Comme elle est reproductible, elle ne convient pas comme secret ni comme jeton de sécurité. |
| Prénom, nom, nom complet | Des noms courants dans la langue de l’interface. Les noms complets chinois, japonais et coréens s’écrivent nom de famille en premier, sans espace. |
name.word<row>@example.test, par exemple casey.maple1@example.test. Le numéro de ligne rend chaque adresse unique. L’adresse n’est pas déduite de la colonne des noms. | |
| Téléphone | Un motif où chaque # devient un chiffre. Laissez-le vide pour le format par défaut de la langue ; en anglais, c’est +1 555-###-####. |
| Entreprise, ville, pays | Des noms d’entreprises inventés et de vrais noms de villes pour la langue de l’interface ; le pays est tiré d’une liste fixe de 20. |
| Entier | Un nombre entier compris entre le minimum et le maximum, bornes incluses. Les deux bornes sont obligatoires et doivent rester dans ±9 007 199 254 740 991, les plus grands entiers que JavaScript représente exactement. |
| Décimal | Un nombre compris entre le minimum et le maximum, avec 0 à 10 décimales, par exemple 114.71. |
| Booléen | true ou false, avec la même probabilité. |
| Date, date-heure | Un jour au hasard entre deux dates YYYY-MM-DD, bornes incluses. Date-heure y ajoute une heure UTC aléatoire : 2026-01-04T09:17:35Z. |
| Choix | Une valeur par ligne, avec un poids facultatif après deux-points : Free:6, Pro:3, Team:1 donne Free environ 60 % du temps. Une ligne sans poids compte pour 1. |
| Motif | Un modèle où # est un chiffre, ? une lettre majuscule et * un chiffre ou une lettre majuscule : SKU-####-?? donne SKU-6836-LU. Tous les autres caractères sont recopiés tels quels. |
| Mots | De 1 à 20 mots (3 par défaut) tirés d’une liste fixe de 20 mots anglais simples, pour du texte de remplissage. |
| Constante | Le même texte dans chaque ligne. |
Graine et reproductibilité
La graine peut être n’importe quel texte. Chaque colonne puise dans son propre flux aléatoire, dérivé de la graine et du nom de la colonne. Par conséquent :
- la même graine, le même nombre de lignes et les mêmes réglages de colonnes donnent un fichier identique octet pour octet, à chaque fois et dans tous les navigateurs ;
- ajouter, supprimer ou réordonner d’autres colonnes ne change pas les valeurs d’une colonne, mais la renommer les change ;
- demander davantage de lignes laisse les premières lignes inchangées et en ajoute de nouvelles à la suite ;
- la langue de l’interface change les noms, les villes, les entreprises et le format de téléphone par défaut, mais pas les nombres, les dates, les choix ni les e-mails.
Les cellules vides utilisent un flux distinct. Une cellule vide ne consomme pas de valeur : modifier le pourcentage de cellules vides décale donc les valeurs qui apparaissent dans les lignes suivantes de cette colonne.
Cellules vides et valeurs uniques
Les cellules vides se règlent en pourcentage, de 0 à 100 par colonne : chaque cellule est laissée vide avec cette probabilité. Utilisez ce réglage pour tester la façon dont un import gère les valeurs manquantes.
L’option des valeurs uniques retire une valeur tant qu’elle a déjà été utilisée dans la colonne, et abandonne après 1 000 essais avec une erreur qui nomme la colonne. Les réglages sont refusés d’emblée lorsque l’unicité est impossible : une plage d’entiers qui contient moins de nombres que de lignes, ou moins de choix que de lignes. Les autres types peuvent tout de même s’épuiser en cours de route, par exemple un nom complet unique après environ 144 lignes en anglais (12 prénoms × 12 noms). Les colonnes séquence, UUID et constante ne sont pas vérifiées, et les cellules vides ne comptent pas comme des valeurs.
Corriger une erreur de réglage
- Le nombre de lignes doit être un entier de 1 à 1 000 000, et le fichier doit compter de 1 à 100 colonnes.
- Un nom de colonne est vide ou utilisé deux fois : chaque en-tête doit être renseigné et différent des autres.
- Les colonnes entier et décimal demandent un minimum et un maximum, le minimum ne dépassant pas le maximum.
- Les plages de dates s’écrivent
YYYY-MM-DD, par exemple2024-01-01;2024/01/01ou01/02/2024sont refusés. - Un motif doit contenir au moins un
#, un?ou un*; sinon, utilisez une colonne constante. - Une liste de choix doit contenir au moins une valeur dont le poids est supérieur à zéro.
Exemple : cinq lignes générées avec la graine demo-2026
Cinq lignes avec la graine demo-2026 : une séquence qui commence à 1001 sur 6 chiffres, un nom complet, un e-mail, un choix pondéré, un décimal de 0 à 250 avec 40 % de cellules vides, et le motif SKU-####-??. Relancez avec les mêmes réglages et vous obtenez exactement ces lignes. Les fins de ligne sont représentées par de simples retours à la ligne.
rows: 5 seed: demo-2026 language: English customer_id sequence start 1001, width 6 name full name email email plan choice Free:6 / Pro:3 / Team:1 mrr decimal 0–250, 2 places, 40% blank sku pattern SKU-####-??
customer_id,name,email,plan,mrr,sku 001001,Mary Brown,casey.maple1@example.test,Free,,SKU-6836-LU 001002,Ethan Davis,taylor.copper2@example.test,Pro,,SKU-8060-HR 001003,Ethan Clark,morgan.falcon3@example.test,Team,114.71,SKU-1401-TZ 001004,Olivia Davis,jordan.harbor4@example.test,Pro,91.82,SKU-8840-PT 001005,Mia Taylor,casey.prism5@example.test,Free,6.99,SKU-6878-OZ
Questions fréquentes
Peut-on partager les données générées sans risque ?
Elles ne contiennent aucune personne réelle : les noms sont des paires aléatoires de noms courants, les e-mails utilisent le domaine réservé .test (RFC 2606) et les numéros anglophones la plage 555. Les noms de villes désignent en revanche de vrais lieux.
Un collègue obtiendra-t-il le même fichier ?
Oui, s’il utilise la même graine, le même nombre de lignes, la même langue d’interface et les mêmes réglages de colonnes, noms de colonnes compris. Le générateur s’appuie sur son propre algorithme à graine et non sur les nombres aléatoires du navigateur.
Me faut-il un gros fichier ou un petit jeu de test ?
Pour quelques lignes documentées avec des cas limites connus, utilisez les fichiers CSV d’exemple. Le générateur convient quand il vous faut du volume, vos propres noms de colonnes ou un mélange précis de types.