Overview
Generates batches of realistic test users with seventeen fields each: name, username, email, phone, address, city and country, company, role, age, salary, an active flag, and a date of birth. Choose a count from 1 to 100 and an output format of JSON, CSV, or SQL INSERT statements. Regenerate for a new batch; nothing leaves the browser.
How It Works
Set the record count and pick the output format. JSON produces a pretty-printed array of objects. CSV produces a header row from the field names followed by quoted-when-needed rows. SQL produces one INSERT INTO users statement per record with strings in single quotes and embedded quotes doubled. A stats readout shows the record count and fields per record, a Regenerate button draws a new batch, and the standard copy and download controls export the result.
Step-by-Step Usage Guide
- Choose how many records you need, from 1 to 100.
- Select the output format: JSON, CSV, or SQL INSERT statements.
- Press Regenerate until you like the batch, since every draw is random.
- Copy or download the output and load it into your database, spreadsheet, or test suite.
Technical Specifications & Standards
The value pools are chosen for plausible variety rather than locality: twenty first names and twenty surnames drawn from multiple regions, eight city and country pairs from Austin to Osaka, and eight company and eight role names, so generated teams look international rather than uniformly American. Fields are derived, not all independent: username and email are built from the chosen first and last name with random digits appended, which reduces but does not eliminate collisions, and the date of birth is constructed as a year from 1970-1999 plus a random month and a day up to 28. Two systematic quirks to know. The phone number is always in +1 North American format regardless of the city's country, so a Berlin user has a US phone; adjust the column downstream if locale consistency matters. SQL output escapes single quotes by doubling them, which is correct for MySQL and Postgres string literals, but numbers and booleans are inserted bare and the statement names no schema or column types, so you need a users table with matching columns to run it. CSV quoting follows the RFC 4180 convention: values containing quotes, commas, or newlines are wrapped in double quotes with internal quotes doubled, which round-trips through strict parsers.
Targeted Use Cases
- Populating a development database with believable user rows for manual testing.
- Producing SQL INSERT fixtures for a staging environment without real customer data.
- Building CSV samples for testing an import pipeline's parsing and validation.
- Creating demo accounts for sales environments where real data must never appear.
Notes & Gotchas
- Regenerate rather than reusing one batch across environments, so no fake identity becomes load-bearing.
- Check uniqueness requirements separately; usernames and emails are name-derived and can collide in large batches.
- Adjust or ignore the phone field for non-US personas, since it is always +1 regardless of the generated country.
- Create the target users table with matching columns before running the SQL output; the statements assume that exact schema.
Frequently Asked Questions
Can the generated data be reproduced with a seed?
No. The generator uses Math.random with no seed parameter, so each batch is different and past batches cannot be reconstructed. Copy a batch you want to keep.
Why does a user from Berlin have a +1 phone number?
The phone field is always generated in North American format and is not correlated with the city and country fields. If locale consistency matters, fix the column after generation or derive phones yourself.
Will the SQL statements run as-is?
Only if you already have a users table whose columns match the generated field names and types. The output is plain INSERT statements with no CREATE TABLE, and string values are escaped by doubling single quotes.
Are the emails safe to use in tests?
They use example-style domains such as example.com, testmail.dev, and sample.org, with name-derived local parts. Collisions are possible in large batches, so do not treat them as unique keys without checking.