Test Data Generator
Create 1 to 1,000 fake records as JSON, CSV, or SQL.
Runs in your browser. Nothing is uploaded.
These are fake user records for development and demos. The generator does not create passwords or contact real people.
Generate records for development work
Test Data Generator creates a small, predictable-looking set of fake user records for local development, demos, fixtures, and import tests. Choose a row count from one to 1,000, select JSON, CSV, or SQL, and press Generate. Each record includes an id, first name, last name, example email, and ISO created-at date. The output is text that you can copy or download as users.json, users.csv, or users.sql.
This is fake user data for development. It is not a password generator, an email list, a lorem ipsum farm, or a source of real identities. Every email uses the reserved example.test domain. Do not use generated rows as production customer data, authentication credentials, or a way to contact people.
Choose a format for the job
JSON is useful for fixtures and API response examples because it preserves the full object shape with readable indentation. CSV is useful for checking a spreadsheet or import path. The CSV output uses TheDevTab's shared serializer, including formula-safe handling for string cells. SQL produces one INSERT INTO users statement per row and escapes apostrophes in values before placing them in quoted SQL strings.
The generator uses a local seeded pseudo-random sequence to choose names, identifiers, and dates. The browser can therefore build the rows without a data service. A seed is an implementation detail rather than a security guarantee, so the output should never be treated as secret or unpredictable. For real identifier requirements, compare the dedicated UUID Generator.
Reproducible rows make debugging easier. When a fixture must be regenerated after a code change, keep the same input count and format so that a failing record can be compared with the previous run. JSON works well in source control because its nested shape is easy to review. CSV is better for checking import rules, column order, delimiters, and spreadsheet behavior. SQL is useful for a local database setup script, but review the target table and transaction behavior before running it. The generated schema stays intentionally small, which keeps examples readable while leaving room for your own edge-case fixtures.
You can combine this tool with the rest of the local workflow. Use JSON to CSV when you already have an object array, or open JSON Formatter to inspect and clean a fixture before saving it. Use UUID Generator when you need standalone identifiers instead of complete records. Keep a fixed count and format when you need a repeatable demo or test case.
Use generated data safely
Test data is only as useful as the test that consumes it. Check required columns, date parsing, duplicate handling, CSV quoting, SQL transaction behavior, and the assumptions your application makes about empty values. Generated records intentionally have a simple schema. Add your own edge cases for long names, missing fields, Unicode, invalid dates, duplicate identifiers, and malicious strings when you are testing validation.
All generation, formatting, copying, and downloading happen in your browser. No generated rows are sent to TheDevTab. For a manually supplied array of objects, JSON to CSV provides a direct conversion, while JSON Formatter helps inspect a fixture before you commit it.
FAQ
Are the generated records based on real people?
No. Each row uses names from fixed lists, a generated UUID v4-style identifier, an example.test email address, and an ISO date selected from the engine's fixed 2024 range. The records are created in your browser and no source dataset is uploaded.
What fields are included in each row?
Each row has id, firstName, lastName, email, and createdAt fields. createdAt is an ISO timestamp, and email follows the generated first-name.last-name.row-number@example.test pattern.
Which output formats are available?
You can generate pretty JSON, CSV, or SQL. SQL output uses one INSERT statement per row for the users table, and CSV uses the same formula-safe escaping as the JSON to CSV engine.
How many rows can I generate?
The generator accepts an integer count from 1 through 1,000. Larger fixtures should be produced in smaller batches so the page has less output to render and copy.
What does the seed control?
When the UI uses the same seed and row count, the deterministic generator reproduces the same names, dates, identifiers, and rows. Generate uses the current time as its seed, while Sample uses seed 3.
Are generated identifiers secure?
No. Seeded fixture identifiers are deterministic and all generated IDs are intended for development data only. Never use them for authentication, authorization, session secrets, or other security decisions.