Generoi valheellinen JSON-tietoaineisto

generoi N JSON-tietuetta, jotka vastaavat yksinkertaista skeemaa, Fakerista (locale fr_FR tai en_US)

Mihin keinotekoista dataa käytetään?

Tarve toistuu kaikissa kehityssyklin vaiheissa. Demoa varten tarvidaan uskottavia käyttäjiä, ei katkaistua Lorem Ipsumia. Integraatiotesteissä halutaan toistettava mutta monipuolinen tietojoukko. GDPR:stä eristetyssä esi-tuotantoympäristössä todelliset tiedot korvataan keinotekoisilla vastineilla. UI-mallinnuksessa taulukot on täytettävä uskottavilla tiedoilla. Keinotekoisen datan generaattori kattaa nämä tapaukset tuottamalla yksinkertaisen skeeman mukaisia JSON-tietueita.

Skeeman muoto

Skeema on JSON-objekti, jossa jokainen avain on luotavan kentän nimi ja arvo on Faker-tyyppi. Esimerkiksi:

{
  "name": "name",
  "email": "email",
  "age": "number 18-65",
  "active": "boolean",
  "registered_on": "date"
}

Työkalu generoi sitten N tietuetta tämän skeeman mukaisesti valitulla lokaalilla (ranska tai englanti). Tuloksena on JSON-taulukko, jota voidaan käyttää suoraan testidatana (fixture), API-pyynnön rungossa tai tietokannan seederin syötteenä.

Tuetut tyypit

  • name: koko nimi ("Marie Dupont").
  • firstName / lastName: etunimi ja sukunimi erikseen.
  • email: keinotekoinen sähköpostiosoite (käyttää Fakerin safeEmail-toimintoa, joka tuottaa varattuja example.com-verkkotunnuksia, joihin ei saa yhteyttä).
  • phone: lokaalin mukaan muotoiltu puhelinnumero.
  • address: täydellinen postiosoite.
  • number: satunnainen kokonaisluku oletuksena välillä 0–1000 tai number a-b mukautetulle välille.
  • boolean: satunnainen true tai false.
  • date: päivämäärä ISO 8601 -muodossa (YYYY-MM-DD).
  • uuid: UUID v4.
  • text: lyhyt lorem-ipsum-mainen kappale (~120 merkkiä).
  • string: kolme satunnaista sanaa.
  • url: keinotekoinen URL (https://example.org/...).

Tuntemattomat tyypit säilytetään tuloksessa sellaisenaan. Tämä on tietoinen valinta: jos asetat skeemaan "role": "admin", jokaisessa tietueessa on "role": "admin". Tämä mahdollistaa vakioarvojen ja dynaamisten kenttien sekoittamisen ilman työkalun vaihtamista.

Lokaalin valinta

Fakerissa on kymmeniä lokaaleja. Työkalu tarjoaa kaksi hyödyllisintä ranskankielisessä kontekstissa:

  • fr_FR: ranskalaiset nimet, osoitteet, puhelinnumerot ja lorem-ipsum-lauseet summittaisella ranskalla.
  • en_US: amerikkalaiset nimet ja osoitteet sekä US-muotoiset puhelinnumerot.

Ranskankielisen demon johdonmukaisuuden vuoksi valitse fr_FR. Kansainvälistymistestiä varten yhdistele molempia ajoja tai lisää tietueiden määrää saadaksesi erilaista alkuperää olevia tietoja.

Käyttötapaukset

  • Testidatat (fixtures): generoi 50 käyttäjää, liitä ne AliceBundlen YAML-tiedostoon tai seederiin. Toistettavissa, kun käytetään kiinteää Faker-siementä (seed), muuten vaihteleva.
  • UI-mallinnukset: täytä React/Vue-taulukko uskottavilla tiedoilla. Paljon puhuvampi kuin tyhjä taulukko tai foo / bar / baz.
  • Kuormitustesti: generoi suuri JSON-hyötykuorma siirtonopeustestiä varten (k6, JMeter, Locust).
  • Myyntidemot: täytä demojärjestelmä syötteillä, jotka näyttävät todellisilta tapauksilta mutta eivät vaaranna herkkien tietojen vuotamista.
  • Anonymisointi: korvaa tuotantovienti keinotekoisella vastineella ennen sen jakamista alihankkijalle tai sen käyttöä esi-tuotannossa.

Tietoiset rajoitukset

Helppokäyttöisyyden säilyttämiseksi työkalu ei tue sisäkkäisiä skeemoja (kenttä, joka olisi itsessään objekti tai objekti-taulukko). Tällaisiin tarpeisiin on parempi kirjoittaa oma Faker-skripti tai yhdistellä useita peräkkäisiä kutsuja. Tietoinen rajoitus välttää myös absurdien yhdistelmien ("items": "name" satunnaisella kardinaliteetilla) syntymisen, mikä tekisi työkalusta vähemmän ennustettavan.

Tietueiden määrä on rajoitettu 500:aan. Tämän ylittävissä tapauksissa testausympäristön odotetaan generoivan testidatansa siihen tarkoitetulla koodilla (Faker CLI, Foundry, factory_bot jne.). Web-työkalu on hyödyllinen muutamaan sataan tietueeseen asti; sen yli mentäessä muisti ja vastausaika rajoittavat käyttökokemusta.

Toistettavuus ja turvallisuus

Arvot tuotetaan ei-deterministisellä PRNG-generaattorilla: jokainen ajo tuottaa erilaista dataa. Toistettavuutta vaativissa testeissä (CI) tallenna tulos kerran ja committaa se. Todella herkille tiedoille (tuotannon anonymisointi) on muistettava, että generointi julkisella palvelimella ei ole oikea kanava: suosi paikallista skriptiä, joka ei koskaan poistu koneeltasi.

Usein kysytyt kysymykset

Ovatko generoidut sähköpostit voimassa olevia?

Muoto on voimassa (RFC 5322), mutta verkkotunnus on example.com tai vastaava IANA:n varaama tunnus. Mikään näistä sähköposteista ei voi vastaanottaa viestejä; tämä on tarkoituksellista, jotta vältetään vahingossa tapahtuva roskapostitus todellisiin osoitteisiin.

Voinko saada saman tietojoukon useita kertoja?

Ei web-käyttöliittymän kautta: työkalu ei käytä kiinteää siementä. Ehdotonta toistettavuutta varten skriptaa generointi paikallisesti Fakerilla ja kiinteällä siemenellä ($faker->seed(1234);).

Miten generoin sisäkkäisen objektin?

Työkalu tukee vain litteää skeemaa. Sisäkkäisiä rakenteita varten jatkokäsittele tulosta skriptillä tai kirjoita suoraan vastaava Faker-koodi.

Miksi numeroni ovat kaikki välillä 0–1000?

Se on oletusväli. Määritä väli: "age": "number 18-65", "price": "number 1-9999" jne.

Mitä yhteyksiä tällä on sivuston muihin työkaluihin?

UUID-tunnuksia varten katso UUID-generaattori. Salasanoja varten salasanageneraattori. Tekstiä varten tekstigeneraattori. Keinotekoisen datan generaattori on monipuolinen työkalu, joka yhdistää useita näistä toiminnoista.

Pyyntöesimerkki

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"}'

Syöteskeema

Kenttä Tyyppi Pakollinen Oletus
schema text {"name": "name", "email": "email", "age": "number 18-65"}
count integer 5
locale choice (fr_FR, en_US) fr_FR

Päätepisteet

  • GET https://cdrn.fr/api/v1/tools - listaa kaikki saatavilla olevat työkalut
  • GET https://cdrn.fr/api/v1/tools/mock-data-generator - hakee tämän työkalun skeeman
  • POST https://cdrn.fr/api/v1/tools/mock-data-generator/execute - suorittaa tämän työkalun JSON-payloadilla