Test Data Generator
Generate reproducible fake names, emails and addresses.
What you paste
Parsed in your browser — never uploadedResult
PASS20 rows across 4 fields
Write the request as "50 rows: name, email, city" and add the word json for JSON output. Available fields are id, first_name, last_name, name, email, city, country, address, phone, company, date, amount, uuid, boolean. Two deliberate choices: email addresses use reserved example domains so a test that accidentally sends mail cannot reach a real person, and the data is generated from a seed derived from your request, so the same request produces identical output every time. That makes a fixture reproducible, which is worth considerably more in a test suite than genuine randomness.
id,name,email,city 3884,Otto Mensah,otto.mensah@example.com,Porto 7312,Hugo Rossi,hugo.rossi@test.example,Pune 8468,Kwame Tanaka,kwame.tanaka@example.net,Bogotá 2531,Hugo Mensah,hugo.mensah@test.example,Utrecht 9011,Tomas Costa,tomas.costa@test.example,Brno 5953,Andrei Tanaka,andrei.tanaka@example.net,Pune 3723,Hugo Popescu,hugo.popescu@test.example,Cluj 1020,Mei Haddad,mei.haddad@example.net,Lagos 6411,Kwame Okafor,kwame.okafor@example.com,Beirut 2607,Ingrid Bergmann,ingrid.bergmann@example.net,Bogotá 6581,Tomas Haddad,tomas.haddad@example.org,Bogotá 7139,Otto Aziz,otto.aziz@example.net,Bologna 2785,Sanne Costa,sanne.costa@example.net,Chengdu 8645,Kwame Bergmann,kwame.bergmann@test.example,Tunis 8496,Mei Rossi,mei.rossi@test.example,Tunis 9980,Amara Novak,amara.novak@example.com,Chengdu 3875,Kwame Costa,kwame.costa@example.com,Cluj 5284,Tomas Herrera,tomas.herrera@example.org,Lyon 6650,Hugo Herrera,hugo.herrera@example.org,Malmö 6031,Sanne Bergmann,sanne.bergmann@example.org,Pune
- Rows
- 20
- Fields
- id, name, email, city
- Format
- CSV
- ReproducibleThe same request always produces the same data
- yes
What this cannot tell you
- Everything runs in your browser. Nothing you paste is uploaded, stored or logged.
- Email addresses use reserved example domains so a test that accidentally sends mail cannot reach a real person. Names and addresses are fictional and any resemblance to a real person is coincidence.
Take this with you
How this reads your output
Write the request as a row count and a field list and the generator builds the data from a seed derived from that request. Related fields stay consistent within a record, so the email address matches the name rather than being drawn independently, which is what makes the data usable for testing anything that checks relationships. Because the seed comes from your request, the same request always produces identical data.
What the results mean
- Reproducible
- The same request gives the same rows every time. For a test fixture that is worth considerably more than genuine randomness, since a failing test can be reproduced.
- Consistent records
- Email addresses are built from the name in the same record, so a record holds together rather than being a set of unrelated values.
- Reserved domains
- Addresses use example.com and its siblings, which are reserved by standard and can never be registered, so accidental mail goes nowhere.
Common problems and fixes
- The data does not exercise the edge cases that break things
- Generated data is uniformly well behaved, which is exactly why bugs survive it. Add the awkward cases by hand: an apostrophe in a surname, a name in a non-Latin script, an address with no postcode, a very long field. Those are what production contains and what tests should include.
- Test data ended up in a production database
- Make it obviously fake rather than realistic. Reserved example domains help, and prefixing every record with a marker such as TEST- makes an accident visible immediately. Realistic-looking test data in a live system is genuinely difficult to identify and remove later.
Frequently asked questions
Which fields are available?
id, first_name, last_name, name, email, city, country, address, phone, company, date, amount, uuid and boolean. Request them by name in a comma-separated list after a colon.
Can I use this instead of anonymising real data?
For most purposes yes, and it is safer. Anonymising real records is harder than it looks, since combinations of ordinary fields can re-identify people even after names are removed. Generated data has no such risk because there is nobody behind it.
Why is it deterministic rather than random?
Because a test that fails on random data is hard to reproduce and therefore hard to fix. A fixed seed means the same rows every run, so a failure can be investigated. When you want different data, change the request slightly and the seed changes with it.
Put this on your own site
Free to embed, no attribution required beyond the source link the frame carries itself. It runs entirely in your visitor's browser, sets no cookies and loads no third-party script.
<iframe src="https://runthetests.com/embed/test-data-generator/" width="100%" height="720" style="border:1px solid #e5e5e5;border-radius:8px" title="Test Data Generator" loading="lazy"></iframe>
Preview it at https://runthetests.com/embed/test-data-generator/. Embedded pages are marked noindex, so yours stays the canonical copy — not this one.