Tools › Data
Test Data Generator
Rows of made-up data from a simple list of fields: numbers, dates, names, emails, choices, patterns, UUIDs and lorem ipsum, with blanks where you want them, as CSV, TSV, JSON, JSON Lines or SQL. A seed makes the same data every time.
About this tool What it's for, how to use it and an example
What it's for
Make rows of realistic-looking but made-up data, to fill a database, try out an import, test a form or a report, or share an example without sharing anyone’s real details.
- When you’re seeding a development database and want a few thousand plausible customers as SQL
INSERTs. - When you’re testing a CSV import and need awkward cases: empty values, commas and quotes inside fields.
- When a bug report or a test needs exactly the same data again: give a seed and it’s repeated row for row.
How to use it
List the fields in the box, one per line, as name: type options. Add a field puts a line for any type at
the end, with example options to edit. The data updates as you type; Generate makes a fresh set.
- Numbers:
sequence 1 10(start, step),integer 18-90,decimal 0-100 2(range, decimal places),boolean 80%(how often it’s true). pick red, green*3, bluechooses from a list;*3makes a choice three times as likely.patternmakes codes:#a digit,?a capital letter,*either,{name}another field’s value in the same row, and\before a character keeps it as it is (\#).- Dates:
dateanddatetimetake a range such as2020-01-01 to 2026-12-31;timeis any time of day. - People and places: first, last and full names, email, phone, company, street, city and country. An email uses the name made in the same row when there is one.
uuid,url,ip,colour, and lorem ipsum aswords 3,sentenceorparagraph.
End a line with | 20% blank to leave that share of its values empty: an empty cell in CSV, null in JSON,
NULL in SQL. Lines starting // are ignored. Choose up to 10,000 rows and the format, then Copy or
Download. With no seed, the message gives the one used, so you can type it in to get the same data back. The
fields, rows, format, table and seed are remembered, and Copy a link keeps them all.
Example
Put these lines in the box, choose 3 rows and CSV, and type demo as the seed:
id: sequence 1
who: full name
email: email
tier: pick gold, silver*3
You get exactly this, every time:
id,who,email,tier
1,Harry Hughes,harry.hughes@example.net,silver
2,Xena Okafor,xena.okafor@example.org,silver
3,Omar Hughes,omar.hughes@example.com,silver
Good to know
Values are random, not unique: names, emails and codes can repeat, so use sequence or uuid for keys. Names
come from short built-in lists of about 45 each, and addresses are invented, not real. Emails use the
example.com, example.org and example.net domains, phone numbers come from Ofcom’s range kept for TV and film
(07700 900000 to 900999), and IP addresses from the ranges kept for documentation, so none of them reach anyone.
A seed repeats the same data only in this tool: it isn’t compatible with other generators, and a later version of
the tool may give different data for the same seed. The randomness isn’t secure, so don’t use it for passwords.
SQL comes as one INSERT per 1,000 rows, with TRUE and FALSE for booleans.
In a pattern, # is a digit, ? a capital letter, * either,
{name} the row's value of another field, and \ keeps the next character as it is.
End any line with | 20% blank to leave that share of its values empty.
Private: this tool runs in your browser. Nothing you type, paste or choose leaves this page.
Saved you a few minutes? Say thanks with a coffee.
Something wrong with this tool, or missing from it? Report a bug or suggest a feature.