Generator fikcyjnych danych użytkownika
Generuj kompletne fikcyjne profile użytkowników: imię, nazwisko, email, adres, telefon, data urodzenia, PESEL. Do testów i mockupów. Bezpłatnie.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Użytkowników
każdy losowany na nowo — brak ziarna, wyniki się różnią
Pól na użytkownika
id, imię, nazwisko, pełna nazwa, płeć, e-mail + włączone opcje
Kraj
Format
| ID | Imię | Nazwisko | Nazwa | Płeć | Adres | Telefon | Nazwa użytkownika | Hasło | |
|---|---|---|---|---|---|---|---|---|---|
| 6e234cfc-7bba-495c-9c47-5f1013aa746f | Charlotte | Garcia | Charlotte Garcia | female | [email protected] | Ulica 834 Pine Road Miasto Boston Region CA Kod pocztowy 44881 Kraj United States | +1 (112) 108-5496 | charlottegarcia144 | hAF$%myF3z$e |
| c1887195-cdaf-42c5-8bf2-cd57610d8765 | Olivia | Williams | Olivia Williams | female | [email protected] | Ulica 950 Park Drive Miasto Phoenix Region MA Kod pocztowy 66690 Kraj United States | +1 759-877-7628 | oliviawilliams315 | 4z*m6Eeve8%3 |
| 72358539-79f5-4629-8121-33051053cc9f | Michael | Garcia | Michael Garcia | male | [email protected] | Ulica 601 Cedar Lane Miasto Austin Region WA Kod pocztowy 39060 Kraj United States | +1 (185) 262-5456 | michaelgarcia962 | 6cW7*MCaR*dX |
| bfeeb2ea-4234-4749-bc6d-e91ac8c2f3d0 | Charlotte | Davis | Charlotte Davis | female | [email protected] | Ulica 364 Pine Road Miasto Seattle Region IL Kod pocztowy 90335-2688 Kraj United States | +1 525-795-7850 | charlottedavis444 | *9?H7ysKmam* |
| ac996e73-e953-4671-bcec-3e9c88d087a4 | Charlotte | Johnson | Charlotte Johnson | female | [email protected] | Ulica 609 Maple Street Miasto Boston Region CA Kod pocztowy 14420-0202 Kraj United States | +1 213-781-9638 | charlottejohnson340 | 8y?DZ$hVDK%f |
| fbac2197-64b4-48f4-8c1b-4b7b6d9af5bb | James | Miller | James Miller | male | [email protected] | Ulica 176 Maple Street Miasto Austin Region IL Kod pocztowy 33363 Kraj United States | +1 (050) 408-1416 | jamesmiller490 | a8A7RwXqyQ*E |
| dd5c6ade-cbf5-40ec-8622-56605d0a957c | Emma | Davis | Emma Davis | female | [email protected] | Ulica 91 Maple Street Miasto Chicago Region CA Kod pocztowy 33195 Kraj United States | +1 (448) 975-0758 | emmadavis407 | xJrn47T#J?d# |
| 99fcdedf-d517-49bb-8a71-9831b6cb4780 | Ethan | Smith | Ethan Smith | male | [email protected] | Ulica 514 Maple Street Miasto Boston Region CO Kod pocztowy 28602 Kraj United States | +1 (180) 991-8579 | ethansmith550 | 2Yb9#8J%v9*b |
| 95bb9c00-c7e7-450a-b5f5-7c5dba16dd7f | Michael | Garcia | Michael Garcia | male | [email protected] | Ulica 925 Maple Street Miasto Chicago Region WA Kod pocztowy 39277 Kraj United States | +1 655-940-5300 | michaelgarcia78 | 4MG*uk93yfkK |
| e576fbb6-0656-4a87-a51c-4b9ddffeeec9 | Olivia | Williams | Olivia Williams | female | [email protected] | Ulica 258 Maple Street Miasto Denver Region CA Kod pocztowy 33320 Kraj United States | +1 127-622-1787 | oliviawilliams324 | t?9nk@n*9!Wz |
| Pole | Jak powstaje (z kodu silnika) | Przykład (domyślne ustawienia) |
|---|---|---|
| id | UUID w wersji 4 losowany z CSPRNG (random_bytes, bity wersji i wariantu ustawiane wg specyfikacji) | 8484aa25-e66b-4e0a-a07d-a34f32a1c0eb |
| Imię i nazwisko | losowane z pul dla wybranego kraju i płci (po 8 imion męskich i żeńskich oraz 8 nazwisk na kraj); „dowolna” płeć losuje 50/50 | William Williams |
| imię.nazwisko (transliterowane, bez ogonków) + losowy numer 10–999 @ domena testowa: example.com, mail.test, demo.local lub testmail.dev | [email protected] |
|
| Adres | ulica z numerem 10–999, miasto i region z pul kraju; kod pocztowy wg maski kraju (# → cyfra, A → wielka litera), np. PL ##-###, GB AA# #AA | 290 Pine Road, Boston 58257-4445, United States |
| Telefon | maska kraju z puli (np. +48 ### ### ###, +1 (###) ###-####), każde # to losowa cyfra | +1 163-921-7783 |
| Login (username) | imię + nazwisko bez ogonków, małe litery + losowy numer 10–999 | williamwilliams320 |
| Hasło (password) | 12 znaków z CSPRNG: gwarantowane mała, wielka, cyfra i znak specjalny (!@#$%*?), reszta losowana, kolejność tasowana Fisherem–Yatesem | AgMDde?D8#Vq |
RODO — dane fikcyjne: imiona, adresy, telefony i hasła są losowane wyłącznie na serwerze podczas generowania. Nie pochodzą z żadnej prawdziwej osoby, nie są zapisywane i nie sprawdzają, czy istnieją. E-maile trafiają tylko do zarezerwowanych domen testowych (example.com, mail.test, demo.local, testmail.dev) — wysyłka na nie nie jest możliwa. Nie używaj tych danych do rejestracji w realnych serwisach ani do podszywania się.
Fikcyjni użytkownicy: testy bez prawdziwych danych
Do czego ten generator
Zapełnianie tabel, testowanie importów CSV/JSON, ekrany rejestracji, demonstracje paneli i szkolenia. Batch do 50 rekordów w jednym przebiegu, z adresem, telefonem i danymi logowania dołączanymi na żądanie — panel bez danych wygląda martwo, a z fikcyjnymi wygląda realnie, nie ryzykując niczego.
Losowość, nie ziarno
Ten silnik losuje każdą partię od nowa (mt_rand/random_int), więc dwa przebiegi dadzą różne osoby — do powtarzalnych testów zapisz wygenerowaną partię do pliku. Jeśli potrzebujesz deterministycznych profili z ziarna (ten sam seed = ten sam profil), użyj generatora profilu użytkownika.
Domeny testowe celowo
E-maile kończą się na example.com, mail.test, demo.local i testmail.dev — domenach zarezerwowanych do dokumentacji i testów, które nigdy nie dostaną prawdziwej poczty. Dzięki temu żaden test rejestracji z powiadomieniami nie wyśle maila przypadkowej osobie.
Hasła tylko na testy
Hasła spełniają typowe reguły złożoności (mała, wielka, cyfra, znak specjalny, 12 znaków), ale są publicznie wygenerowane — nadają się wyłącznie do środowisk testowych i demonstracji. W produkcji obowiązkowo własna rejestracja z hashowaniem (bcrypt/argon2) i nigdy te wartości.
Wskazówka: kafelki nad wynikiem pokazują liczbę rekordów, liczbę pól na użytkownika, kraj i format — a eksport zapisuje partię w dokładnie tym formacie, który wybrałeś (.json, .csv lub .txt).
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator fikcyjnych danych użytkownika – kompletna persona testowa
Fikcyjne dane użytkownika są niezbędne przy tworzeniu: mockupów UI, baz danych testowych, seed scripts, demonstracji produktu i testów bez ryzyka RODO. Generator tworzy kompletne, realistycznie wyglądające profile z wszystkimi polami typowymi dla systemu użytkowników.
Co zawiera profil testowy
Imię i nazwisko: realistyczne polskie lub zagraniczne. Email: zbudowany z imienia+nazwiska@domain. Telefon: format polskie +48 6xx-xxx-xxx. Adres: ulica, kod pocztowy, miasto, województwo. Data urodzenia: losowa w przedziale wiekowym. PESEL: walidowany algorytmem (suma kontrolna). Hasło (zahashowane): bcrypt. Avatar: placeholder image.
RODO a dane testowe
RODO (GDPR) Art. 5: dane osobowe = "informacje o zidentyfikowanej lub identyfikowalnej osobie fizycznej". Fikcyjne dane: nie są danymi osobowymi (nie odnoszą się do realnej osoby). Bezpieczne alternatywy: (1) generator fikcyjnych danych, (2) anonimizacja prawdziwych danych. Produkcja: nigdy prawdziwe dane w testach/staging!
Algorytm PESEL – walidacja
PESEL: 11 cyfr. Ciąg: RRMMDDXXXXY (R=rok, M=miesiąc, D=dzień, X=numer porządkowy, Y=cyfra kontrolna). Urodzony w XX w.: RRMMDD. W XXI w.: miesiąc + 20 (np. 2001 = miesiąc 01 → 21). Kontrolna: wagi 1,3,7,9,1,3,7,9,1,3 → suma mod 10 = (10 - mod) mod 10.
Popularne biblioteki do generowania danych
JavaScript: @faker-js/faker. faker.person.fullName(), faker.internet.email(), faker.location.city(). Python: Faker. fake = Faker("pl_PL"); fake.name(). PHP: fakerphp/faker. $faker = Faker\Factory::create("pl_PL"). Java: Java Faker (com.github.javafaker). C#: Bogus (NuGet). Wszystkie obsługują lokalizację polską.
Jak działa generator person testowych
Generator nie losuje każdego pola osobno. Najpierw powstaje szkielet persony: płeć oraz data urodzenia. Dopiero z tego szkieletu wyprowadzane są pola pochodne — imię i nazwisko ze słownika dopasowanego do płci i lokalizacji, e-mail przez sklejenie imienia i nazwiska, PESEL z daty urodzenia i numeru porządkowego, telefon z formatu krajowego. Taka kolejność daje rekord spójny wewnętrznie: płeć w imieniu zgadza się z cyfrą porządkową numeru, a wiek wynika z daty wpisanej w PESEL. Losowanie niezależnych ciągów znaków dałoby zestaw, który na pierwszy rzut oka wygląda jak zbiór przypadkowych wartości i szybko psuje testy formularzy.
Kluczowym elementem mechanizmu jest cyfra kontrolna PESEL. Generator wybiera najpierw dziesięć cyfr: sześć z daty urodzenia (z przesunięciem miesiąca o 20 dla osób urodzonych w XXI wieku) oraz cztery z numeru porządkowego, którego ostatnia cyfra koduje płeć. Następnie liczy iloczyny tych cyfr z wagami, sumuje je i sprawdza resztę z dzielenia przez 10. Dopiero tak policzona jedenasta cyfra trafia do numeru, dlatego wygenerowany PESEL przechodzi standardową walidację, mimo że nie pochodzi z żadnego rejestru.
Drugi mechanizm to losowość powtarzalna. Generator korzysta z pseudolosowego strumienia liczb, który można zainicjować ziarnem (seed). To samo ziarno i ta sama wersja słowników dają identyczną personę przy każdym uruchomieniu, co pozwala odtworzyć stan bazy testowej albo powtórzyć nieudany przypadek. Bez ziarna każdy profil jest inny, ale wciąż zgodny z regułami formatu — długość numeru, suma kontrolna i format telefonu są sprawdzane przed zwróceniem wyniku, więc do aplikacji nie trafia ciąg, który nie przeszedłby walidacji składniowej.
Przykład: jedna persona krok po kroku
- Wybór szkieletu: kobieta, data urodzenia 12 marca 1990. W zapisie PESEL daje to ciąg 900312 — rok 90, miesiąc 03, dzień 12.
- Imię i nazwisko ze słownika żeńskiego: Anna Kowalska. Pola pochodne: e-mail [email protected] oraz telefon w formacie krajowym +48 612-345-678.
- Numer porządkowy to cztery cyfry 1234. Pierwsze dziesięć cyfr numeru ma postać 9003121234, a ostatnia cyfra porządkowa (4, parzysta) jest spójna z płcią żeńską.
- Suma kontrolna: iloczyny kolejnych cyfr z wagami 1, 3, 7, 9, 1, 3, 7, 9, 1, 3 wynoszą 9, 0, 0, 27, 1, 6, 7, 18, 3, 12. Suma to 83, a reszta z dzielenia przez 10 to 3.
- Cyfra kontrolna: (10 - 3) mod 10 = 7. Pełny PESEL to 90031212347 — jedenaście cyfr z poprawną sumą kontrolną.
- Rekord trafia do seed script razem z adresem, hasłem w postaci skrótu bcrypt i adresem avatara. Przy tym samym ziarnie cały zestaw pól odtworzymy identycznie przy kolejnym uruchomieniu.
Pola persony i reguły ich budowy
| Pole | Reguła | Przykład |
|---|---|---|
| Imię i nazwisko | losowane ze słownika dopasowanego do płci i lokalizacji | Anna Kowalska |
| imie.nazwisko małymi literami plus domena | [email protected] | |
| Telefon | format krajowy +48 6xx-xxx-xxx | +48 612-345-678 |
| Data urodzenia | losowa w zadanym przedziale wiekowym, w PESEL jako RRMMDD | 12.03.1990, czyli 900312 |
| PESEL | 11 cyfr, ostatnia liczona z wag 1, 3, 7, 9, 1, 3, 7, 9, 1, 3 | 90031212347 |
| Adres | ulica, kod pocztowy, miasto, województwo | ul. Przykładowa 12, 00-001 Warszawa, mazowieckie |
| Hasło | wyłącznie jako nieodwracalny skrót bcrypt | skrót bcrypt, bez jawnego hasła |
| Avatar | adres obrazu zastępczego | placeholder, nie zdjęcie realnej osoby |
Jak wdrożyć generator w projekcie
- Ustal ziarno przed pierwszym uruchomieniem — zapisz je w konfiguracji obok skryptu seedującego. Bez tego każde odtworzenie bazy daje inne dane i nie da się powtórzyć błędu zgłoszonego przez testera.
- Przypnij wersję biblioteki — słowniki imion, nazwisk i miast zmieniają się między wydaniami, więc aktualizacja zależności potrafi zmienić wynik przy niezmienionym ziarnie.
- Oznacz rekordy jako testowe — dodaj pole znacznikowe albo prefiks w adresie e-mail, żeby jednym zapytaniem usunąć cały zestaw i nie pomylić go z kontami zakładanymi ręcznie na stagingu.
- Testuj warianty skrajne, nie tylko typowy profil — długie nazwisko, brak drugiego imienia, adres zagraniczny czy osoba urodzona w XXI wieku ujawniają błędy szerokości kolumn i skracania tekstu w UI.
- Używaj tego samego kodu walidującego co produkcja — generator pilnuje sumy kontrolnej PESEL i formatu telefonu, ale reguły biznesowe aplikacji, na przykład minimalny wiek, trzeba przetestować osobno.
Ograniczenia i pułapki
- Brak gwarancji unikalności — losowanie może powtórzyć tę samą kombinację pól, więc unikalność e-maila czy loginu musi wymusić baza albo skrypt seedujący, a nie sam generator.
- Adres nie jest weryfikowany przestrzennie — ulica nie musi istnieć w podanym mieście, a kod pocztowy nie odpowiada realnemu obszarowi. Testy geokodowania i normalizacji adresów wymagają innego źródła danych.
- Rozkłady nie odwzorowują populacji — słowniki zawierają ograniczoną liczbę imion, nazwisk i miast, więc przy dużym zbiorze proporcje i rzadkie przypadki będą odbiegać od rzeczywistych.
- Persona nie zna reguł biznesowych — generator nie wie o limitach długości, polach wymaganych, relacjach między tabelami ani unikalnych indeksach; to trzeba narzucić w seed script, inaczej import zakończy się błędem.
Najczęstsze pytania
Jak generować PESEL z datą urodzenia?
1. Wyznacz rok i miesiąc urodzenia. 2. Jeśli ≥ 2000: dodaj 20 do miesiąca. 3. Wygeneruj losowe 4 cyfry XXX (porządkowy) + parzysty/nieparzysty dla płci (ostatni przed kontrolną). 4. Oblicz cyfre kontrolną: wagi 1,3,7,9,1,3,7,9,1,3. suma × odpowiednia cyfra → suma mod 10 → kontrolna = (10 - suma mod 10) mod 10.
Jak generować realistyczne emaile testowe?
Format: [email protected]. Domeny testowe: @example.com, @test.com, @mailtest.net (RFC 2606 zarezerwowane). Unikaj: @gmail.com, @wp.pl (możliwość kolizji z prawdziwymi). Faker: faker.internet.email("Jan", "Kowalski") = "[email protected]". Subaddressing: [email protected].
Jak importować fikcyjne dane do MySQL?
PHP: foreach ($faker->count(100)) → INSERT. Laravel seeder: UserFactory::count(100)->create(). Node.js: faker loop + mysql2 query. SQL: load from CSV (LOAD DATA INFILE). Python: faker loop + pymysql execute. Tip: użyj transakcji (BEGIN/COMMIT) dla szybkości przy dużych zestawach.
Jakie pola powinien zawierać user record?
Minimum: id (UUID), email (unique), password_hash. Standard: + first_name, last_name, created_at, updated_at. E-commerce: + address, phone, date_of_birth. PL system: + PESEL (zaszyfrowany), NIP (dla firm). Avatar: URL do S3 lub placeholder. Soft delete: deleted_at (nullable). Email verified: email_verified_at.
Jak anonimizować prawdziwe dane produkcyjne do testów?
Anonymization script: foreach user: user.email = fake.email(); user.phone = fake.phone(). Pseudonymization: hash(real_email + salt) → traceability zachowana. Tools: ARX Data Anonymization Tool, Amnesia. AWS: Macie wykrywa PII, Glue + DynamoDB do maskowania. Pamiętaj: kopia produkcji z prawdziwymi danymi na staging = naruszenie RODO.
Czy wygenerowane dane można wgrać na produkcję?
Nie. Persony testowe służą do baz deweloperskich, stagingu, mockupów i demonstracji. Na środowisku produkcyjnym konta zakładają realni użytkownicy, a fikcyjne rekordy zaburzają statystyki i mogą łamać reguły biznesowe.
Jak uzyskać powtarzalne wyniki przy kolejnym uruchomieniu?
Ustaw ziarno generatora i zapisz numer wersji biblioteki razem ze skryptem. Ten sam seed i te same słowniki dają identyczny zestaw person, natomiast zmiana wersji biblioteki może zmienić wynik.
Czy PESEL z generatora przejdzie walidację w moim formularzu?
Sam numer tak, bo cyfra kontrolna jest liczona z wag i suma się zgadza. Walidacja w aplikacji może jednak wymagać dodatkowych warunków, na przykład minimalnego wieku albo zgodności numeru z datą urodzenia w profilu.
Generator czy anonimizacja — co wybrać?
Generator, gdy potrzebujesz danych od zera i nie masz dostępu do zbioru produkcyjnego. Anonimizację, gdy wynik ma zachować rozkłady i relacje z prawdziwego zbioru, na przykład przy testach wydajności na realistycznych wolumenach.
Czy e-mail z persony może trafić do prawdziwej skrzynki?
Może, jeśli użyjesz domeny, która istnieje i należy do kogoś innego. Do testów wybierz domenę, którą kontrolujesz, albo domenę przeznaczoną do przykładów, i wyłącz realną wysyłkę wiadomości na środowisku testowym.
Powiązane narzedzia: generator losowych adresow, generator imion i walidator PESEL.