Testdata generatorSamenhangende datasets met BSN, IBAN en adres
Complete fictieve testrecords: naam, geboortedatum, BSN, e-mail, telefoon, adres, IBAN en meer. Kies je kolommen, deel de seed met je team en exporteer tot 10.000 rijen naar CSV, Excel, JSON of SQL.
FictiefAlle gegenereerde gegevens zijn fictief en alleen bedoeld voor test- en ontwikkelomgevingen. Een willekeurig geldig nummer kan toevallig bestaan: gebruik het nooit als echt gegeven.
100 records
Fictiefvoorbeeld: eerste 25| Volgnummer | Voornaam | Tussenvoegsel | Achternaam | Geboortedatum | BSN | Telefoon | Straat | Huisnummer | Postcode | Plaats | IBAN | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Marieke | – | Jansen | 1946-01-27 | 804733077 | marieke.jansen@example.net | 0614728829 | Sportlaan | 102 | 1344 BK | Almere | NL72RABO0481618406 |
| 2 | Anne | – | Brouwer | 1978-10-15 | 832309035 | anne.brouwer37@example.com | 0611693471 | Kerkstraat | 171 | 5048 PN | Tilburg | NL27FVLB0759760470 |
| 3 | Mila | van | Vliet | 1986-09-06 | 107182397 | mila.vanvliet@example.net | 0654349237 | Wilhelminastraat | 5 | 7326 XS | Apeldoorn | NL64ASNB0188501177 |
| 4 | Marieke | – | Kok | 1999-02-27 | 109729201 | m.kok@example.com | 0649888564 | Kastanjelaan | 100 | 6718 KL | Ede | NL43ASNB0838242766 |
| 5 | Joris | van den | Broek | 1995-05-25 | 373788940 | jorisvandenbroek@example.org | 0612381575 | Kerkstraat | 9 | 5015 SP | Tilburg | NL92ASNB0820651710 |
| 6 | Bram | van den | Berg | 2000-01-10 | 159107453 | bram.vandenberg41@example.com | 0645619009 | Groenstraat | 173 | 1321 TG | Almere | NL51ABNA0903381400 |
| 7 | Erik | van den | Broek | 1950-12-19 | 416531350 | erikvandenbroek@example.com | 0652737766 | Eikenlaan | 109 | 3814 VR | Amersfoort | NL87RABO0300110863 |
| 8 | Mark | – | Smit | 1996-07-10 | 406473055 | m.smit@example.net | 0650703459 | Schoolstraat | 88 | 6825 DT | Arnhem | NL71TRIO0858348462 |
| 9 | Esther | van den | Broek | 2001-10-31 | 662796214 | esther.vandenbroek@example.com | 0650952042 | Hoofdstraat | 72 | 5627 BW | Eindhoven | NL17RABO0854701184 |
| 10 | Eva | van de | Ven | 1976-05-14 | 123789692 | eva.vandeven90@example.com | 0618706352 | Schoolstraat | 121 | 6530 ST | Nijmegen | NL02KNAB0809694565 |
| 11 | Mark | van | Wijk | 1977-04-30 | 746808458 | mark.vanwijk@example.com | 0614531649 | Herenstraat | 99 | 2538 ZB | Den Haag | NL38SNSB0679315306 |
| 12 | Peter | van den | Broek | 1978-07-08 | 758250083 | p.vandenbroek@example.org | 0652195465 | Bosweg | 22 | 1078 ZR | Amsterdam | NL16INGB0828717583 |
| 13 | Lotte | – | Jansen | 1993-07-30 | 703345096 | lotte.jansen@example.org | 0656227541 | Kastanjelaan | 81 | 6824 ZW | Arnhem | NL69INGB0609718274 |
| 14 | Linda | van | Beek | 1977-01-02 | 999350468 | linda.vanbeek@example.com | 0620062634 | Vijverweg | 148 | 2623 PT | Delft | NL22SNSB0154396117 |
| 15 | Femke | – | Koster | 1961-06-26 | 496317027 | femkekoster@example.org | 0644524486 | Prins Hendrikstraat | 64 | 6713 TB | Ede | NL64SNSB0429811535 |
| 16 | Esther | de | Boer | 1991-11-11 | 285150984 | esther.deboer36@example.net | 0648326530 | Lindenlaan | 27 | 1507 AH | Zaandam | NL96KNAB0143492411 |
| 17 | Joris | de | Lange | 1965-02-25 | 358577081 | j.delange@example.org | 0634495662 | Schoolstraat | 170 | 7331 HW | Apeldoorn | NL96INGB0380365847 |
| 18 | Noor | – | Hendriks | 1954-11-13 | 207431395 | noor.hendriks@example.org | 0632459938 | Berkenlaan | 28 | 1315 XX | Almere | NL50TRIO0369364953 |
| 19 | Linda | van der | Veen | 1946-11-01 | 638756674 | l.vanderveen@example.org | 0628271055 | Marktstraat | 16 | 3544 BB | Utrecht | NL21RABO0810893002 |
| 20 | Lars | – | Vos | 1961-09-27 | 373703247 | larsvos@example.com | 0646774091 | Berkenlaan | 115 | 6830 NJ | Arnhem | NL22ABNA0213441098 |
| 21 | Henk | – | Mulder | 1974-09-20 | 318863972 | henkmulder@example.com | 0651270921 | Schoolstraat | 164 | 3536 XG | Utrecht | NL81RABO0646821466 |
| 22 | Sophie | – | Kok | 1981-08-20 | 583382307 | sophiekok@example.net | 0636558617 | Prins Hendrikstraat | 129 | 3311 HT | Dordrecht | NL71FVLB0666240523 |
| 23 | Emma | van | Leeuwen | 1998-05-10 | 350372482 | e.vanleeuwen@example.org | 0615074352 | Stationsweg | 101 | 2628 XN | Delft | NL53TRIO0851372643 |
| 24 | Roos | – | Maas | 1980-04-25 | 548618392 | roos.maas@example.net | 0655471433 | Prins Hendrikstraat | 95 | 4815 JS | Breda | NL80ASNB0583659780 |
| 25 | Mark | – | Bakker | 1954-06-08 | 672791328 | mark.bakker54@example.net | 0620761696 | Schoolstraat | 11 | 6221 MN | Maastricht | NL26BUNQ0183116488 |
Wat zit er in een record?
Elke kolom volgt de regels van het echte gegeven. Het voorbeeld is de eerste rij van seed test-nummers.
| Kolom | Voorbeeld | Regel |
|---|---|---|
| Volgnummerid | 1 | Oplopend vanaf 1, handig als primaire sleutel |
| Voornaamvoornaam | Marieke | Nederlandse voornaam, past bij het geslacht |
| Tussenvoegseltussenvoegsel | (leeg) | Apart veld, zoals in de BRP; vaak leeg |
| Achternaamachternaam | Jansen | Achternaam zonder tussenvoegsel |
| Volledige naamvolledige_naam | Marieke Jansen | Voornaam, tussenvoegsel en achternaam samen |
| Geslachtgeslacht | v | v of m |
| Geboortedatumgeboortedatum | 1946-01-27 | ISO 8601 (JJJJ-MM-DD), leeftijd 18 tot 80 jaar op 1 januari 2026 |
| BSNbsn | 804733077 | 9 cijfers die de elfproef doorstaan, uniek binnen de dataset |
| E-mailemail | marieke.jansen@example.net | Afgeleid van de naam, alleen gereserveerde domeinen (RFC 2606), uniek |
| Telefoontelefoon | 0614728829 | Mobiel nummer in de reeksen 061 tot en met 065 |
| Straatstraat | Sportlaan | Veelvoorkomende Nederlandse straatnaam |
| Huisnummerhuisnummer | 102 | 1 tot en met 180 |
| Toevoegingtoevoeging | (leeg) | Soms een toevoeging (A, B, 1, hs, bis), meestal leeg |
| Postcodepostcode | 1344 BK | 1234 AB, nooit SA, SD of SS; past bij de plaats als records samenhangen |
| Plaatsplaats | Almere | Een van twintig grote gemeenten |
| IBANiban | NL72RABO0481618406 | Nederlandse IBAN met geldige mod-97-controlecijfers |
| BICbic | RABONL2U | BIC van de bank uit de IBAN |
| KVK-nummerkvk | 32094741 | 8 cijfers, kan met 0 beginnen |
| Btw-idbtw_id | NL776204106B08 | Btw-id van een eenmanszaak, mod 97 = 1 |
| UUIDuuid | 140fee56-8771-4a16-a9d8-2e78a63856dc | Versie 4 (RFC 9562) |
| Kentekenkenteken | XR-090-L | Sidecode 9, 10 of 11, alleen toegestane letters |
Seed: dezelfde dataset op elke machine
Dezelfde seed, hetzelfde aantal rijen en dezelfde instelling voor samenhang geven altijd dezelfde rijen, in elke browser. Een dataset vastleggen in een testplan of bugmelding kan dus met één link: de knop Kopieer link naar deze dataset zet aantal, seed en kolommen in de URL. De data zelf staat niet in de link; die wordt bij openen opnieuw berekend.
Kolommen aan- of uitzetten verandert de andere waarden niet: een rij wordt altijd volledig gemaakt en pas daarna ingekort tot de kolommen die je kiest. En de voorbeeldtabel is precies het begin van de export. Wijzigt de generator zelf (bijvoorbeeld een langere namenlijst), dan kan een seed andere data geven. Dat staat dan in de changelog.
Samenhangend of los
Met Samenhangend aan is het e-mailadres afgeleid van de naam (marieke.jansen@example.net bij Marieke Jansen) en valt de postcode in de reeks van de plaats. Dat maakt demo's en handmatige tests geloofwaardig.
Zet het uit om te testen of je applicatie ook werkt als gegevens niet bij elkaar passen: een e-mailadres dat niet op de naam lijkt of een postcode uit een andere provincie. Alleen e-mail, postcode en plaats veranderen; de rest van de rij blijft gelijk.
Exportformaten
- CSV
- Komma als scheidingsteken, UTF-8, RFC 4180. Cellen die een spreadsheet als formule zou uitvoeren krijgen een apostrof ervoor.
- Excel (.xlsx)
- Kopregel met kolomnamen, alle cellen als tekst: voorloopnullen (zoals in KVK-nummers) en lange nummers blijven intact.
- JSON
- Een array van objecten met de kolomnamen als sleutels en alle waarden als string. Direct bruikbaar als fixture.
- SQL
- CREATE TABLE testdata plus INSERT-statements per 500 rijen. Werkt in PostgreSQL, MySQL, SQLite en SQL Server.
Liever plakken? Kopieer tabel zet alle rijen als tabel op het klembord, klaar voor Excel of Google Sheets. Inlezen met pandas? Gebruik pd.read_csv('testdataset.csv', dtype=str), anders verdwijnen voorloopnullen.
Als fixture in je tests
Exporteer als JSON en lees het bestand in je testcode. Met een vaste seed draait elke run met dezelfde personen.
import { test, expect } from '@playwright/test';
import personen from './fixtures/testdataset.json';
for (const p of personen.slice(0, 5)) {
test(`registreren: ${p.voornaam} ${p.achternaam}`, async ({ page }) => {
await page.goto('/registreren');
await page.getByLabel('BSN').fill(p.bsn);
await page.getByLabel('E-mail').fill(p.email);
await page.getByLabel('Postcode').fill(p.postcode);
await page.getByRole('button', { name: 'Verder' }).click();
await expect(page.getByText('Controleer je gegevens')).toBeVisible();
});
}Waarvoor gebruik je een testdataset?
- Test automation. Data-driven tests in Playwright, Cypress, Selenium of Robot Framework, met dezelfde data in elke run.
- Database seeding. Een ontwikkel- of acceptatiedatabase vullen met de SQL-export, zonder productiedata te kopiëren.
- Low-code. In Mendix of OutSystems de Excel-export inlezen met een Excel-importmodule om schermen en microflows te testen.
- Demo en acceptatie. Schermen vullen met geloofwaardige, samenhangende maar verzonnen klanten.
- Performancetests. Tot 10.000 unieke records per export als input voor load- en stresstests.
Testdata en de AVG
De records zijn niet afgeleid van echte personen, dus je hoeft geen productiedata naar een testomgeving te kopiëren. Losse waarden kunnen wel toevallig bestaan: een willekeurig BSN kan aan iemand zijn uitgegeven en veelvoorkomende namen bestaan echt. Gebruik de data daarom alleen in testomgevingen. Meer daarover in AVG en testomgevingen.
Veelgestelde vragen
Wat is een seed en waarom zou ik die gebruiken?
De seed is het startpunt van de toevalsgenerator. Dezelfde seed met hetzelfde aantal rijen geeft op elke computer precies dezelfde dataset. Zet de seed in je testplan, bugmelding of CI-configuratie en iedereen werkt met identieke testdata. Met "Kopieer link" deel je seed, kolommen en aantal in één URL. Kolommen aan- of uitzetten verandert de andere waarden niet.
Welke kolommen kan ik kiezen?
Volgnummer, voornaam, tussenvoegsel, achternaam, volledige naam, geslacht, geboortedatum, BSN, e-mail, telefoon, straat, huisnummer, toevoeging, postcode, plaats, IBAN, BIC, KVK-nummer, btw-id, UUID en kenteken. Standaard staan de meest gebruikte aan; met "Alles" zet je ze allemaal aan.
Horen postcode, plaats en e-mail bij elkaar?
Met "Samenhangend" aan wel: het e-mailadres is afgeleid van de naam en de postcode valt in de postcodereeks van de plaats. Het adres als geheel bestaat meestal niet; straat en huisnummer zijn niet op de echte postcode afgestemd. Zet samenhang uit als je juist wilt testen hoe je applicatie omgaat met gegevens die niet bij elkaar passen.
Naar welke formaten kan ik exporteren?
CSV (komma, UTF-8), Excel (.xlsx, alle cellen als tekst zodat voorloopnullen blijven staan), JSON (array van objecten) en SQL (CREATE TABLE plus INSERT-statements per 500 rijen voor PostgreSQL, MySQL, SQLite en SQL Server). Met "Kopieer tabel" plak je de rijen direct in Excel of Google Sheets.
Hoeveel rijen kan ik maken?
Tot 10.000 rijen per export. De voorbeeldtabel toont de eerste 25; de export bevat exact dezelfde rijen, aangevuld tot het gekozen aantal. Om misbruik te voorkomen geldt een limiet van 50.000 records per minuut, gedeeld met de andere generators.
Wordt de dataset opgeslagen of verstuurd?
Nee. Alles wordt in je browser berekend. In de adresbalk staan alleen je instellingen (aantal, seed, kolommen), niet de data zelf. De data bestaat pas als je exporteert of kopieert.
Kan een waarde uit de dataset van een echt persoon zijn?
Toevallig wel. Een BSN of IBAN dat de controle doorstaat kan bestaan, en veelvoorkomende namen bestaan echt. De combinatie is verzonnen. Gebruik de data alleen in test- en ontwikkelomgevingen en vul haar niet aan met echte persoonsgegevens.