Kitalált JSON adatkészlet generálása

N darab JSON rekordot generál egy egyszerű sémának megfelelően, Faker-ből (fr_FR vagy en_US locale)

Mire használják az áladatokat?

Az igény a fejlesztési ciklus minden szakaszában felmerül. A demóhoz felhasználókra van szükségünk hihető, nem csonka Lorem Ipsum. Az integrációs tesztekhez adatkészletet szeretnénk reprodukálható, de változatos. A GDPR-től elkülönített, gyártás előtti környezet esetében kicseréljük az adatokat valódi mesterséges megfelelőivel. UI modell esetén a táblákat bejegyzésekkel kell feltöltenie hiteles. A áladatgenerátor ezeket az eseteket előállítással fedi le Egy egyszerű sémának megfelelő JSON rekordok.

A diagram formátuma

A séma egy JSON-objektum, ahol minden kulcs az előállított mező neve, az érték pedig egy Faker típusú. által példa:

{
  "név": "név",
  "email": "e-mail",
  "életkor": "18-65",
  "active": "boolean",
  "registered_on": "dátum"
}

Az eszköz ezután N felvételt generál ennek a sémának megfelelően, a kiválasztott nyelvterületen (francia vagy angol). Az eredmény egy JSON-tömb, amely közvetlenül fixtureként, egy kérés törzseként használható API-t, vagy bemenetként egy adatbázis-olvasóba.

Támogatott típusok

  • név: teljes név („Marie Dupont”).
  • firstName / lastName: az utó- és vezetéknév elválasztva.
  • e-mail: hamis e-mail cím (a Faker safeEmail-ját használja, amely fenntartott domainek example.com nem érhetők el).
  • telefon: helyileg formázott telefonszám.
  • cím: teljes postacím.
  • szám: alapértelmezés szerint véletlenszerű egész szám 0 és 1000 között, vagy a-b személyre szabott választék.
  • logikai: igaz vagy false véletlenszerű.
  • dátum: dátum ISO 8601 formátumban (ÉÉÉÉ-HH-NN).
  • uuid: UUID v4.
  • szöveg: rövid lorem-ipsumesque bekezdés (kb. 120 karakter).
  • karakterlánc: három véletlenszerű szó.
  • url: ál-URL (https://example.org/...).

A fel nem ismert típusok az eredményben maradnak. Ez egy választás: ha felteszed "role": "admin" a sémában minden rekordhoz tartozik "role": "admin". Ezt lehetővé teszi az állandó értékek és a dinamikus mezők keverését az eszközök megváltoztatása nélkül.

Helyválasztás

Fakernek több tucat telephelye van. Az eszköz kontextusban tárja fel a két leghasznosabbat franciául beszélő:

  • fr_FR: francia nevek, francia címek, telefonszámok francia formátumban, lorem-ipsum mondatok hozzávetőleges franciául.
  • hu_US: amerikai nevek és címek, telefonszámok amerikai formátumban.

A francia oldalon a bemutató konzisztenciája érdekében válassza a fr_FR lehetőséget. Egy tesztre nemzetközivé, keverje össze a két végrehajtást, vagy növelje a rendelkezni kívánt rekordok számát sokféle eredetű.

Használati esetek

  • Tesztjavítások: hozzon létre 50 felhasználót, illessze be őket egy YAML-fájlba AliceBundle-ből vagy vetőgépből. Reprodukálható, ha beállít egy Faker-magot, máskülönben változtatható.
  • UI-modellek: a React/Vue táblázat kitöltése elfogadható adatokkal. Nagyon sokat értelmesebb, mint egy üres tömb vagy a foo / bar / baz.
  • Tesztterhelés: generáljon nagy JSON-terhelést az átviteli teljesítményteszthez (k6, JMeter, Sáska).
  • Kereskedelmi bemutatók: töltsön fel egy bemutatópéldányt olyan bemenetekkel valós esetekre hasonlítanak, de nem kockáztatják az érzékeny információk kiszivárgását.
  • Anonimizálás: cserélje ki a termelési exportot egy fiktív megfelelővel korábban ossza meg egy alvállalkozóval, vagy használja fel az előgyártás során.

Önkéntes korlátok

Az egyszerű használat érdekében az eszköz nem támogatja a beágyazott sémákat (ez a mező maga is objektum vagy objektumok tömbje). Ilyen igényekre érdemesebb dedikált Faker scriptet írni, ill több egymást követő hívás tárcsázása. Az önkéntes határ az abszurd kombinációkat is elkerüli ("elemek": "név" véletlenszerű számossággal), ami kevésbé tervezhetővé tenné az eszközt.

A rekordok száma legfeljebb 500. Ezen túlmenően olyan környezetre számítunk tesztelje, hogy dedikált kódon keresztül hozza létre a fixtureit (Faker in CLI, Foundry, factory_bot stb.). A webes eszköz akár néhány száz rekordhoz is hasznos; ezen túlmenően a memória és a válaszidő platója tapasztalat.

Reprodukálhatóság és biztonság

Az értékeket nem determinisztikus PRNG-vel állítják elő: minden végrehajtás adatot termel különböző. A reprodukálhatónak (CI) szükséges teszteknél rögzítse a kimenetet egyszer és elkövetni. A valóban érzékeny adatok (gyártás anonimizálása) esetében ne feledje, hogy a A nyilvános szerveroldali generálás nem a megfelelő csatorna: részesítsen előnyben egy olyan helyi szkriptet, amely soha nem lép ki pozícióját.

Gyakran ismételt kérdések

Érvényesek a generált e-mailek?

A formátum érvényes (RFC 5322), de a domain example.com vagy azzal egyenértékű fenntartva írta IANA. Ezen e-mailek egyike sem fogadhat üzeneteket; ez önkéntes a spam elkerülése érdekében véletlenül valós címeken.

Lekérhetem többször ugyanazt az adatkészletet?

Nem a webes felületen keresztül: az eszköz nem állít be magot. A szigorú reprodukálhatóság érdekében írja le a helyi generáció Fakerrel és fix maggal ($faker->seed(1234);).

Hogyan hozhatunk létre beágyazott objektumot?

Az eszköz csak egy lapos diagramot támogat. Beágyazott esetén a kimenet utófeldolgozása scripttel ill közvetlenül írja be a megfelelő Faker kódot.

Miért vannak a számaim 0 és 1000 között?

Ez az alapértelmezett tartomány. Adjon meg egy tartományt: "age": "number 18-65", "price": "number 1-9999" stb.

Milyen linkek találhatók a webhelyen található egyéb eszközökhöz?

A mennyiségi UUID-kért tekintse meg az UUID-generátort. Mert jelszavak, a jelszógenerátor. Szöveghez, a szöveggenerátor. Az áladatgenerátor az eszköz transzverzális, amely több ilyen generációt egyesít.

Kérés példa

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

Bemeneti séma

Mező Típus Kötelező Alapértelmezett
schema text {"name": "name", "email": "email", "age": "number 18-65"}
count integer 5
locale choice (fr_FR, en_US) fr_FR

Végpontok

  • GET https://cdrn.fr/api/v1/tools - listázza az összes elérhető eszközt
  • GET https://cdrn.fr/api/v1/tools/mock-data-generator - lekéri ezen eszköz sémáját
  • POST https://cdrn.fr/api/v1/tools/mock-data-generator/execute - végrehajtja ezen eszközt JSON payloaddal