Einen Fake JSON-Datensatz erstellen
- Dashboard
- Dokumentation
- API
Wofür dienen Mock-Daten?
Der Bedarf tritt in allen Phasen des Entwicklungszyklus auf. Für eine Demo benötigt man plausible Benutzer, kein abgeschnittenes Lorem Ipsum. Für Integrationstests möchte man einen reproduzierbaren, aber abwechslungsreichen Datensatz. Für eine vom DSGVO isolierte Pre-Production-Umgebung ersetzt man die echten Daten durch gefälschte Äquivalente. Für ein UI-Mockup müssen Tabellen mit glaubwürdigen Einträgen befüllt werden. Der Mock-Daten-Generator deckt diese Fälle ab, indem er JSON-Datensätze gemäß einem einfachen Schema erzeugt.
Das Schema-Format
Das Schema ist ein JSON-Objekt, in dem jeder Schlüssel der Name des erzeugten Feldes und der Wert ein Faker-Typ ist. Zum Beispiel:
{
"name": "name",
"email": "email",
"age": "number 18-65",
"active": "boolean",
"registered_on": "date"
}
Das Tool generiert dann N Datensätze, die diesem Schema entsprechen, in der gewählten Locale (Französisch oder Englisch). Das Ergebnis ist ein JSON-Array, das direkt als Fixture, als Body einer API-Anfrage oder als Eingabe für einen Datenbank-Seeder verwendbar ist.
Unterstützte Typen
- name: vollständiger Name ("Marie Dupont").
- firstName / lastName: Vor- und Nachname getrennt.
- email: gefälschte E-Mail-Adresse (verwendet
safeEmailvon Faker, das reservierte Domainsexample.comerzeugt, die nicht erreichbar sind). - phone: nach Locale formatierte Telefonnummer.
- address: vollständige Postadresse.
- number: zufällige ganze Zahl zwischen 0 und 1000 standardmäßig, oder
number a-bfür einen benutzerdefinierten Bereich. - boolean: zufälliges
trueoderfalse. - date: Datum im ISO-8601-Format (
YYYY-MM-DD). - uuid: UUID v4.
- text: kurzer Lorem-Ipsum-artiger Absatz (~120 Zeichen).
- string: drei zufällige Wörter.
- url: gefälschte URL (
https://example.org/...).
Jeder nicht erkannte Typ wird unverändert ins Ergebnis übernommen. Das ist eine bewusste Entscheidung: Wenn Sie
"role": "admin" ins Schema setzen, hat jeder Datensatz "role": "admin". Das
ermöglicht es, konstante Werte und dynamische Felder zu mischen, ohne das Tool zu wechseln.
Locale-Wahl
Faker bietet Dutzende von Locales. Das Tool exponiert die beiden in einem französischsprachigen Kontext nützlichsten:
- fr_FR: französische Namen, französische Adressen, Telefonnummern im französischen Format, Lorem-Ipsum-Sätze in ungefährem Französisch.
- en_US: amerikanische Namen und Adressen, Telefonnummern im US-Format.
Für die Demonstrationskonsistenz auf Französisch wählen Sie fr_FR. Für einen
Internationalisierungstest mischen Sie die beiden Ausführungen oder erhöhen Sie die Anzahl der Datensätze, um eine
Vielfalt an Ursprüngen zu erhalten.
Anwendungsfälle
- Test-Fixtures: 50 Benutzer erzeugen, sie in eine YAML-Datei von AliceBundle oder einen Seeder einfügen. Reproduzierbar, wenn man einen Faker-Seed fixiert, andernfalls abwechslungsreich.
- UI-Mockups: eine React-/Vue-Tabelle mit plausiblen Daten füllen. Viel
aussagekräftiger als eine leere Tabelle oder
foo / bar / baz. - Lasttest: ein großes JSON-Payload für einen Durchsatztest erzeugen (k6, JMeter, Locust).
- Kommerzielle Demos: eine Demo-Instanz mit Einträgen befüllen, die wie reale Fälle aussehen, aber keine sensiblen Informationen preisgeben.
- Anonymisierung: einen Produktionsexport durch ein gefälschtes Äquivalent ersetzen, bevor er an einen Unterauftragnehmer weitergegeben oder in der Pre-Production verwendet wird.
Bewusste Grenzen
Um einfach zu bedienen zu bleiben, unterstützt das Tool keine verschachtelten Schemata (ein Feld, das selbst
ein Objekt oder ein Array von Objekten wäre). Für solche Bedürfnisse ist es besser, ein dediziertes Faker-Skript zu schreiben oder
mehrere aufeinanderfolgende Aufrufe zu komponieren. Die bewusste Grenze vermeidet auch absurde Kombinationen
("items": "name" mit zufälliger Kardinalität), die das Tool weniger vorhersehbar machen würden.
Die Anzahl der Datensätze ist auf 500 begrenzt. Darüber hinaus erwartet man von einer Testumgebung, dass sie ihre Fixtures über dedizierten Code generiert (Faker in CLI, Foundry, factory_bot usw.). Das Web-Tool ist bis zu einigen hundert Datensätzen nützlich; darüber hinaus begrenzen Speicher und Antwortzeit die Erfahrung.
Reproduzierbarkeit und Sicherheit
Die Werte werden mit einem nicht-deterministischen PRNG erzeugt: Jede Ausführung erzeugt unterschiedliche Daten. Für Tests, die reproduzierbar sein müssen (CI), erfassen Sie die Ausgabe einmal und committen Sie sie. Für wirklich sensible Daten (Produktionsanonymisierung) bedenken Sie, dass die serverseitige Generierung auf öffentlicher Seite nicht der richtige Kanal ist: Bevorzugen Sie ein lokales Skript, das niemals Ihren Rechner verlässt.
Häufig gestellte Fragen
Sind die generierten E-Mails gültig?
Das Format ist gültig (RFC 5322), aber die Domain ist example.com oder eine von der IANA reservierte
Entsprechung. Keine dieser E-Mails kann eine Nachricht empfangen; das ist bewusst so, um versehentlichen Spam
auf echte Adressen zu vermeiden.
Kann ich denselben Datensatz mehrmals erhalten?
Nicht über die Weboberfläche: Das Tool fixiert keinen Seed. Für strikte Reproduzierbarkeit skripten Sie die
Generierung lokal mit Faker und einem festen Seed ($faker->seed(1234);).
Wie erzeugt man ein verschachteltes Objekt?
Das Tool unterstützt nur ein flaches Schema. Für Verschachtelungen verarbeiten Sie die Ausgabe mit einem Skript nach oder schreiben Sie direkt den entsprechenden Faker-Code.
Warum liegen alle meine Zahlen zwischen 0 und 1000?
Das ist der Standardbereich. Geben Sie einen Bereich an: "age": "number 18-65",
"price": "number 1-9999" usw.
Welche Verbindungen bestehen zu anderen Tools der Website?
Für UUIDs in Mengen siehe den UUID-Generator. Für Passwörter den Passwortgenerator. Für Text den Textgenerator. Der Mock-Daten-Generator ist das übergreifende Tool, das mehrere dieser Generierungen kombiniert.
Beispielanfrage
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"}'
Eingabeschema
| Feld | Typ | Erforderlich | Standard |
|---|---|---|---|
schema |
text | ✓ | {"name": "name", "email": "email", "age": "number 18-65"} |
count |
integer | ✓ | 5 |
locale |
choice (fr_FR, en_US) | ✓ | fr_FR |
Endpunkte
GET https://cdrn.fr/api/v1/tools- listet alle verfügbaren Tools aufGET https://cdrn.fr/api/v1/tools/mock-data-generator- liefert das Schema dieses ToolsPOST https://cdrn.fr/api/v1/tools/mock-data-generator/execute- führt dieses Tool mit einem JSON-Payload aus