CSV Test Data for Developers

Realistic CSV test data is what separates a demo that looks alive from one that screams "lorem ipsum". CSV.si lets you generate 10 to 100,000 rows of plausible-looking records — UUIDs, names, emails, addresses, finance, geo — in seconds, then drop them straight into pytest fixtures, Postgres seeds, or Storybook stories.

Generate matching mock data right now

No sign-up, runs 100% in your browser, exports straight to CSV.

What good test data looks like

  • Unique IDs: UUIDs, not auto-incrementing integers that hide ordering bugs.
  • Diverse names: not 100 rows of "John Smith" — your unicode handling will break in production.
  • Edge-case values: long strings, characters that need escaping (commas, quotes, newlines), null-ish values.
  • Realistic distributions: don't make every order $50; vary amounts so charts and aggregations look real.

Typical dev workflows

  • Seed a dev database — generate CSV, \copy into Postgres, develop against real-looking data.
  • Storybook stories — drop 50 rows into a table component to validate empty state, loading state, overflow.
  • Performance tests — generate 100k rows, measure how your list virtualization holds up.
  • Integration test fixtures — commit a small CSV to the repo so tests have predictable input.

Frequently asked questions

Can I get the same data twice?

CSV.si regenerates fresh data each time. For reproducible fixtures, generate once and commit the CSV.

What about PII?

Generated data is fully synthetic — no real names, emails, or IDs. Safe to commit.

Related guides

Start generating free mock CSVs

High-fidelity mock tables for tests, demos, or models. No sign-ups, completely local.