Data Tinker ES
data-tinker / test data

Fill in forms instantly with valid data

A Chrome extension for developers, QA and support teams. Test cards, phone numbers, full profiles and US and Spanish IDs, consistent with each other and ready to pass common validation rules. One field or the whole form, in one click, from a panel next to the page.

Chrome Web Store soon How it's used ↓

Less time making up test data. More time testing your app.

Chrome and Edge · no account · zero network requests

Test cardLuhn
4242 4242 4242 4242 → Luhn sum = 80 · a multiple of 10
4242 4242 4242 4242checks out
US phonefiction range
555-0100 to 555-0199 → reserved for films and books: it rings no one
(312) 555-0142checks out
Spanish ID (DNI)remainder of ÷ 23
12345678 mod 23 = 14
12345678Zchecks out
01 / moves

Three moves, from one field to the whole form

The panel stays open while you test. No switching tabs, no copying, no coming back.

  1. 1

    Drag

    Every value in the panel has a handle: drop it on the field and you're done. Or press “To field” for the one that has focus.

  2. 2

    From the field itself

    Right-click, Alt+Shift+D, or the small icon that shows up next to the focused field. Nothing to open.

  3. 3

    Fill everything

    One value per field, picked by its autocomplete hint, name or label. Then a report of what went where and what deserves a second look.

02 / catalog

A generator for every awkward field

The usual suspects, and the ones nobody keeps at hand: an ABA routing number, a LEI, a federal case number.

  • Anywhere
  • United States
  • Spain
  • Profiles and your own
  • Edge cases
  • Cardtest cards
  • Teleight countries
  • @emails
  • Pwdpasswords
  • Datedates and times
  • UUIDv4 and v7
  • IPv4 and v6
  • MACnetwork
  • IMEIhandset
  • VINvehicle
  • LEIlegal entity
  • ISINsecurity
  • Lorlorem ipsum
  • SSNSocial Security
  • ITINtaxpayer
  • EINemployer
  • ABArouting
  • ZIPpostcode
  • Casefederal case
  • Citcase citation
  • DNInational ID
  • NIEforeigner ID
  • NIFtax ID
  • CIFcompany
  • NSSSocial Security
  • Paspassport
  • IBANSpanish
  • CUPSutility supply
  • Catland registry
  • Matnumber plate
  • NIGcourt
  • ECLIcase law
  • Perwhole person
  • Cowhole company
  • ###your pattern
  • 1‥nnumber, date, list
  • Txtlong and blank
  • UniUnicode
  • Injinjections
  • Numnumbers
  • @?odd emails
  • 29/2dates

Cards are the numbers payment gateways publish for testing — no bank issues them. Phone numbers come, wherever the regulator has one, from the range set aside for fiction. And every generator is tested against examples published by whoever issues the real thing, not against itself.

03 / ticket

A fill you can repeat is a bug you can fix

Data Tinker remembers the last fill: which value went into which field. “Repeat with the same data” puts them all back, even after you've closed the panel or reloaded the page.

And the report copies two ways: as a table that reads well pasted into Jira, GitHub or Slack, or as JSON for anyone who wants to process it. Whoever picks up the ticket gets the exact data, not “some card number”.

QA-412Sign-up fails for some ZIP codes

Happens on staging. Data that reproduces it:

FieldValueDataStatus
Full nameEmily R. CarterPersonfine
Card4242…4242Cardfine
ZIP00501ZIPfine
Phone(312) 555-0142Phoneto review
pasted from Data Tinker4 of 4 fields filled
04 / odd

Good data shows it works. Odd data shows it holds.

Boundary values with their reason written next to them, so you know what you're testing and not just what you're typing.

  • a × 256One past 255. Cut silently, flagged, or does the database fall over?
  • 👨‍👩‍👧‍👦One family, seven characters: counters can't agree on the length.
  • O'Brien "el" \ raroQuotes and a backslash — the tell of half-done escaping.
  • <script>alert(1)</script>Does any screen render it as HTML?
  • 2147483648 · 1e309 · 007Numbers a parser isn't expecting.
  • 29/02/2023A day that never happened.
Test the form's limits · Last name (the page says so)
(empty)required
amin. 5
aaaaaaccepted
a × 300cut to 50

“Test the form's limits” runs these through the form, field by field. When a page only states its limit once you get it wrong (“Enter at least 5 characters”), it reads it from that message.

05 / rules

Teach it your fields

Your app has fields no built-in template has heard of. A rule takes one line.

if the field saysorder ref, reference
putORD-{year}-####
and you getORD-2026-4817
  • # digit
  • @ letter
  • ? either
  • {year} {MM} {dd} date
  • | another format
  • TemplatesDetect a form's fields or capture what it holds right now, and paste it into another form. Checkboxes and radio groups too.
  • Fill on loadA template tied to an address fills the page by itself as soon as it loads.
  • Three shortcutsEach with its own template, for the forms you fill ten times a day.
  • ProjectsRules and templates per application, each with its own sites, and a backup in a single file.
06 / privacy

Zero network requests

There's no server behind it. Everything is worked out and stored in your browser — here are the books.

What it keeps, in your browser

  • Your rules, templates and projectsThey only leave if you export a copy.
  • Values you capture from a formPasswords, never.
  • The last fillSo it can be repeated. Each fill replaces the one before.
  • Your settingsCountry, language, the field icon, shortcuts.

What it doesn't do

  • Send anything anywhereThe extension makes no network requests at all.
  • Ask you for an account
  • Track what you doNo analytics, no ads.
  • Read pages on its ownIt looks at the form when you ask it to.

Why does it ask for access to all sites? Because the form you're testing could live at any address — your machine, staging, production — and there's no knowing which in advance. That access is used to fill it and to show the icon next to the field, which you can turn off or limit to your own sites in the settings. Full privacy policy.

07 / questions

Before you install it

Could a generated SSN belong to someone?

It could match a real one, as any nine digits might. That's why, wherever there's an option that belongs to nobody — test cards, fictional phone ranges — that's what comes out by default.

What happens with a field it doesn't recognise?

It puts in some text that fits and flags it in the report with “Create rule”. Tell it what goes there, and next time it knows.

Does it get along with React?

It types like a person would, firing the events frameworks listen to and using the native setter React needs. It's also been tried on Vuetify and on masked date fields.

Does it cost anything?

No, and there's no account. Everything on this page ships in the extension.

Which browsers?

Chrome and Chromium-based browsers such as Edge. Firefox needs a manifest of its own, and it's on the list.

Which languages?

English and Spanish. It follows your browser, and you can switch it from the panel.