Generera falskt JSON-data
- Panel
- Dokumentation
- API
Vad används mockdata till?
Behovet återkommer i alla skeden av utvecklingscykeln. För en demo behövs trovärdiga användare, inte avhuggen Lorem Ipsum. För integrationstester vill man ha ett reproducerbart men varierat dataset. För en preproduktionsmiljö isolerad från GDPR ersätter man verkliga data med fiktiva motsvarigheter. För en UI-mockup måste man fylla tabeller med trovärdiga poster. Mockdatageneratorn täcker dessa fall genom att producera JSON-poster som följer ett enkelt schema.
Schemats format
Schemat är ett JSON-objekt där varje nyckel är namnet på det fält som produceras och värdet är en Faker-typ. Till exempel:
{
"name": "name",
"email": "email",
"age": "number 18-65",
"active": "boolean",
"registered_on": "date"
}
Verktyget genererar sedan N poster som följer schemat, i vald locale (franska eller engelska). Resultatet är en JSON-array som kan användas direkt som fixtur, som body i en API- förfrågan eller som indata till en databas-seeder.
Typer som stöds
- name: fullständigt namn ("Marie Dupont").
- firstName / lastName: förnamn och efternamn separerade.
- email: fiktiv e-postadress (använder
safeEmailfrån Faker, som producerar reserverade domänerexample.comsom inte kan nås). - phone: telefonnummer formaterat enligt locale.
- address: fullständig postadress.
- number: slumpmässigt heltal mellan 0 och 1000 som standard, eller
number a-bför ett anpassat intervall. - boolean: slumpmässigt
trueellerfalse. - date: datum i ISO 8601-format (
YYYY-MM-DD). - uuid: UUID v4.
- text: kort lorem-ipsum-aktigt stycke (~120 tecken).
- string: tre slumpmässiga ord.
- url: fiktiv URL (
https://example.org/...).
Varje typ som inte känns igen behålls som den är i resultatet. Det är ett val: om du sätter
"role": "admin" i schemat kommer varje post att ha "role": "admin". Det
gör det möjligt att blanda konstanta värden och dynamiska fält utan att byta verktyg.
Val av locale
Faker har dussintals locales. Verktyget exponerar de två mest användbara i ett fransktalande sammanhang:
- fr_FR: franska namn, franska adresser, telefonnummer i franskt format, lorem-ipsum-meningar på ungefärlig franska.
- en_US: amerikanska namn och adresser, telefonnummer i US-format.
För konsekvens i en franskspråkig demo, välj fr_FR. För ett
internationaliseringstest, blanda de två exekveringarna eller öka antalet poster för att ha
en variation av ursprung.
Användningsfall
- Testfixturer: generera 50 användare, klistra in dem i en YAML-fil i AliceBundle eller en seeder. Reproducerbart när man fixerar ett Faker-seed, varierat annars.
- UI-mockups: fylla en React/Vue-tabell med trovärdiga data. Mycket
mer talande än en tom tabell eller
foo / bar / baz. - Lasttest: generera en stor JSON-payload för ett genomströmningstest (k6, JMeter, Locust).
- Kommersiella demos: fylla en demonstrationsinstans med poster som liknar verkliga fall men inte riskerar att läcka känslig information.
- Anonymisering: ersätta en produktionsexport med en fiktiv motsvarighet innan du delar den med en underleverantör eller använder den i preproduktion.
Medvetna begränsningar
För att förbli enkelt att använda stöder verktyget inte kapslade scheman (ett fält som självt skulle vara
ett objekt eller en array av objekt). För sådana behov är det bättre att skriva ett dedikerat Faker-skript, eller
komponera flera efterföljande anrop. Den medvetna begränsningen undviker också absurda kombinationer
("items": "name" med slumpmässig kardinalitet) som skulle göra verktyget mindre förutsägbart.
Antalet poster är begränsat till 500. Bortom det förväntas en testmiljö generera sina fixturer via dedikerad kod (Faker i CLI, Foundry, factory_bot osv.). Webbverktyget är användbart upp till några hundra poster; bortom det når minne och svarstid taket för upplevelsen.
Reproducerbarhet och säkerhet
Värdena produceras med en icke-deterministisk PRNG: varje körning producerar olika data. För tester som måste vara reproducerbara (CI), fånga utdatan en gång och committa den. För verkligt känsliga data (anonymisering av produktion), kom ihåg att generering på en offentlig server inte är rätt kanal: föredra ett lokalt skript som aldrig lämnar din arbetsstation.
Vanliga frågor
Är de genererade e-postadresserna giltiga?
Formatet är giltigt (RFC 5322), men domänen är example.com eller motsvarande reserverad
av IANA. Ingen av dessa e-postadresser kan ta emot meddelanden; det är medvetet för att undvika oavsiktlig
spam på riktiga adresser.
Kan jag få samma dataset flera gånger?
Inte via webbgränssnittet: verktyget fixerar inget seed. För strikt reproducerbarhet, skripta
genereringen lokalt med Faker och ett fast seed ($faker->seed(1234);).
Hur genererar man ett kapslat objekt?
Verktyget stöder bara ett platt schema. För kapsling, efterbearbeta utdatan med ett skript eller skriv direkt motsvarande Faker-kod.
Varför är alla mina tal mellan 0 och 1000?
Det är standardintervallet. Ange ett intervall: "age": "number 18-65",
"price": "number 1-9999" osv.
Vilka är kopplingarna till andra verktyg på sajten?
För UUID i mängd, se UUID-generatorn. För lösenord, lösenordsgeneratorn. För text, textgeneratorn. Mockdatageneratorn är det övergripande verktyget som kombinerar flera av dessa genereringar.
Exempelförfrågan
curl -X POST https://cdrn.fr/api/v1/tools/mock-data-generator/execute \
-H "Content-Type: application/json" \
-d '{"schema":"{\"name\": \"name\", \"email\": \"email\", \"age\": \"number 18-65\"}","count":5,"locale":"fr_FR"}'
Indatasschema
| Fält | Typ | Obligatorisk | Standard |
|---|---|---|---|
schema |
text | ✓ | {"name": "name", "email": "email", "age": "number 18-65"} |
count |
integer | ✓ | 5 |
locale |
choice (fr_FR, en_US) | ✓ | fr_FR |
Slutpunkter
GET https://cdrn.fr/api/v1/tools- listar alla tillgängliga verktygGET https://cdrn.fr/api/v1/tools/mock-data-generator- hämtar schemat för detta verktygPOST https://cdrn.fr/api/v1/tools/mock-data-generator/execute- kör detta verktyg med en JSON-payload