Verwenden von Faker zum Erzeugen von Fülldaten für automatisierte Tests

Was Sie erstellen werden

Faker ist eine von Francois Zaninotto entwickelte Open-Source-Bibliothek, die künstliche Fülldaten für Ihre Anwendung und deren Testanforderungen generiert.

Faker kann in einer Vanilla-PHP-Anwendung, einem Framework wie Yii oder Laravel oder in einer Testbibliothek verwendet werden, auf die wir in diesem früheren Envato Tuts + -Tutorial mit Codeception verwiesen haben.

Im heutigen Tutorial werde ich die grundlegende Installation und Verwendung von Faker und seine Funktionen überprüfen. Wie Zaninotto sagt:

"Egal, ob Sie Ihre Datenbank bootstrapieren müssen, gut aussehende XML-Dokumente erstellen, Ihre Beharrlichkeit beim Stresstest angeben oder Daten aus einem Produktionsdienst anonymisieren möchten, Faker ist für Sie da."

Insgesamt bietet es eine Vielzahl einfacher Funktionen, die für jedes Testprogramm von Nutzen sind.

Eine kleine Erinnerung, bevor wir anfangen, nehme ich an den Kommentarthreads unten teil. Ich bin besonders interessiert, wenn Sie weitere Gedanken haben oder Themen für zukünftige Tutorials vorschlagen möchten. Wenn Sie eine Frage oder ein Thema haben, schreiben Sie bitte unten. Sie können mich auch direkt auf Twitter @reifman erreichen.

Fertig machen

Faker installieren

Ich begann mit dem Erstellen eines neuen Codebaums und dem Hinzufügen Fzaninotto / Faker zu composer.json unten:

"name": "Faker Demonstration", "description": "für Envato Tuts +", "Schlüsselwörter": ["faker", "php", "jeff reifman"], "homepage": "http: // www. lookahead.io/ "," type ":" project "," license ":" BSD-3-Klausel "," Mindeststabilität ":" stable "," required ": " php ":"> = 5.6. 0 "," fzaninotto / faker ":" * " 

Dann habe ich den Komponisten aktualisiert:

$ composer update Composer-Repositorys mit Paketinformationen laden Abhängigkeiten aktualisieren (einschließlich requir-dev) - fzaninotto / faker (v1.6.0) installieren Aus Cache laden Sperrdatei schreiben Dateien werden automatisch generiert 

Faker wird im Herstellerverzeichnis installiert. Dann habe ich am Anfang einer index.php-Datei geladen:

Als nächstes wollte ich ein paar einfache Beispielszenarien für das Generieren von Daten ausprobieren.

Einfache Beispiele

Ich habe die Faker-Beispiele wie folgt erweitert und sie von http: // localhost: 8888 / faker ausgeführt:

Name; // 'Lucy Cechtelar'; Abstandshalter(); Echo $ Faker-> Adresse; // "426 Jordy Lodge // Cartwrightshire, SC 88120-6700" spacer (); echo $ faker-> text; // Dolores sitzen im Labor von Laboratorien und Freunden. Beatae nam sunt fugit // und sitzen und mollitia sed. // Fuga deserunt tempora facere magni omnis. Omnis quia temporibus laudantium // Minima sint. Abstandshalter(); Funktion Spacer () Echo '
'; ?>

Mit schnellen Aktualisierungen wurden mir unterschiedliche Ergebnisse präsentiert, z.

Ruthie Beier 37851 Gusikowski Flat Suite 594 Port Keithmouth, NM 06110 Weitere Informationen finden Sie hier. Error maiores qui vero non omnis. Quaerat mollitia dolore erhält ein quia quidem beatae. 

Und:

Darron Hessel 657 Elijah Lock Suite 202 Nitzschemouth, AZ 11166 Culpa dolorum quidem distinctio eius necessitatibus. Mollitia ut nostrum et ut quas veniam et. Unde iure belästigungen aperiam fuga voluptatibus quo. 

Und:

Fredy Fadel MD 53328 Eldora Insel Apt. 634 West Eleanore, CA 95798-3025 In den Warenkorb Weitere Produkte aus Laudantium eveniet ad. Qui a voluptatibus est quia voluptatem. Dolorum pariatur quaerat nulla.

Faker hält, was er verspricht.

Faker-Standardanbieter

Alle Datengenerierungsmethoden in Faker werden aus der Implementierung von Providern erstellt. Hier ist der Code, der die Standardanbieter von Faker registriert - das ist für Sie erledigt:

addProvider (neuer Faker \ Provider \ en_US \ Person ($ faker)); $ faker-> addProvider (neuer Faker \ Provider \ en_US \ Address ($ faker)); $ faker-> addProvider (neuer Faker \ Provider \ en_US \ PhoneNumber ($ faker)); $ faker-> addProvider (neuer Faker \ Provider \ en_US \ Company ($ faker)); $ faker-> addProvider (neuer Faker \ Provider \ Lorem ($ faker)); $ faker-> addProvider (neuer Faker \ Provider \ Internet ($ faker));

Also oben, als ich einen beantragte Adresse von Faker durchsuchte es alle Anbieter nach übereinstimmenden Methoden, die letztendlich mit der Adresse() Anbieter.

Sie können auch eigene Anbieter schreiben oder eine Reihe von im Internet verfügbaren Erweiterungen von Faker durchsuchen.

Modifikatoren

Faker bietet auch spezielle Modifizierer an, um Sie beim Testen zu unterstützen, z. B. unique (), optional () oder valid (). Sie können beispielsweise eindeutige Nummern generieren:

// unique () zwingt Anbieter zur Rückgabe eindeutiger Werte $ values ​​= array (); für ($ i = 0; $ i < 10; $i++)  // get a random digit, but always a new one, to avoid duplicates $values []= $faker->unique () -> randomDigit;  print_r ($ values);

Hier ist die Ausgabe von eindeutigen Werten:

Array ([0] => 7 [1] => 6 [2] => 0 [3] => 2 [4] => 5 [5] => 1 [6] => 8 [7] => 4 [8] => 9 [9] => 3)

Wenn Sie die wahlweise() werden einige Zahlen als zurückgegeben NULL als ob der Benutzer kein Feld in Ihrem Formular eingegeben hätte. Hinweis: Ich kann diese Methode nicht richtig ausführen.

Mit gültig(), Sie können Funktionen registrieren, die bestimmen, ob die Fülldaten bestimmten Anforderungen entsprechen oder einen Fehler zurückgeben oder eine Fehlermeldung auf einem Benutzerformular generieren.

Die Anbieter erkunden

Faker bietet eine breite Palette von Methoden zum Generieren von Zufallsdaten für Ihre Anwendung an:

  • Basis: einfache Methoden für zufällige Buchstaben, Zahlen, verarbeitete Zeichenfolgen und Regex
  • Lorem Ipsum Text: Zufälliger lateinischer Text
  • Person: Namen von Personen
  • Adresse: Postanschriften
  • Telefonnummer: Telefonnummern
  • Firma: Namen der Unternehmen
  • Echter Text: tatsächlicher Text, geschrieben von Menschen, gegen sinnlose lateinische Zeichenketten
  • Datum und Uhrzeit: zufällige Datums- und Uhrzeitangaben
  • Internet: E-Mails, Domains usw.
  • User Agent: Browserzeichenfolgen
  • Bezahlung: Kreditkarten und SWIFT-Strings und Nummern
  • Farbe: zufällige Farben
  • Datei: Dateierweiterungen, Dateitypen und Dateinamen
  • Bild: URLs von Füllbildern verschiedener Art
  • Uuid: eindeutige IDs
  • Barcode: verschiedene Barcode-Typen, z. ISBN13
  • Sonstiges: Verschlüsselungscodes, Ländercodes usw.
  • Voreingenommenheit: Zufallszahlen mit Voreingenommenheit

Lassen Sie uns mit ein paar weiteren Methoden experimentieren.

Zahlungsinformationen

Der folgende Code generiert zehn Personen, deren Kreditkarteninformationen und Sicherheitscodes:

$ faker = Faker \ Factory :: create (); für ($ i = 0; $ i<10;$i++)  $cc = $faker->Kreditkartendetails; $ cc ['security'] = $ faker-> numberBetween (199,499); var_dump ($ cc); Spacer (2); 

Hier ist eine Ausgabe aus dem obigen Code:

Bilder

Hier ist ein einfaches Beispiel für die Bilderzeugung:

$ faker = Faker \ Factory :: create (); $ width = 320; $ height = 240; Echo ''; 

Sie können aber auch Katzen generieren:

Echo ' ";

Möglicherweise hat mich die Fähigkeit zur Generierung von Katzen überzeugt. Ich kann es kaum erwarten, dass dreidimensionales Drucken und die Aktivierung der Seele mit solchen Sachen funktionieren.

Internationalisierte Daten

Mit dem folgenden Code habe ich eine Tabelle mit vier Spalten mit Namen aus Frankreich, Russland, Amerika und China erstellt:

Echo '
Französisch Russisch Englisch Chinesisch
'; $ faker = Faker \ Factory :: create ('fr_FR'); // einen französischen Faker erstellen für ($ i = 0; $ i < 10; $i++) echo $faker->Name; Abstandshalter(); Spacer (2); Echo ''; $ faker = Faker \ Factory :: create ('Ru_RU'); // russisch erstellen für ($ i = 0; $ i < 10; $i++) echo $faker->Name; Abstandshalter(); Spacer (2); Echo ''; $ faker = Faker \ Factory :: create ('En_US'); // Erstelle Englisch für ($ i = 0; $ i < 10; $i++) echo $faker->Name; Abstandshalter(); Spacer (2); Echo ''; $ faker = Faker \ Factory :: create ('zh_CN'); // Erzeuge Chinesisch für ($ i = 0; $ i < 10; $i++) echo $faker->Name; Abstandshalter(); Echo '
';

Hier ist die Ausgabe:

Gefälschte E-Mail-Adressen erstellen

Beispielcode zum Generieren von 25 gefälschten E-Mail-Adressen von kostenlosen Anbietern wie Google Mail und Yahoo:

$ values ​​= array (); für ($ i = 0; $ i < 25; $i++)  // get a random digit, but also null sometimes $values []= $faker->freeEmail ();  print_r ($ values); Ausfahrt; 

Hier ist die resultierende Ausgabe:

XML-Dokumente erstellen

Faker bietet ein hilfreiches Beispiel für die Generierung von XML. Es ist jedoch erforderlich, dass Sie mit einem Framework arbeiten und über eine Ansichtsarchitektur verfügen:

      boolean (25)):?>   
streetAddress?> Stadt?> Postleitzahl?> Zustand?>
boolean (33)):?> bs?> boolean (33)):?> boolean (15)):?>
Text (400)?>]]>

Abschließend

Ich hoffe, dass dies für Sie eine grundlegende Einführung in Faker war, eine unglaublich nützliche, kostenlose Open-Source-PHP-Bibliothek.

Wenn Sie weiter lesen möchten, empfehle ich den Filler-Inhalt von Jim Nielsen: Tools, Tipps und ein dynamisches Beispiel (Envato Tuts +), das dem Anwendungsentwickler die Möglichkeit bietet, Daten zu generieren. Er schlägt vor, dass Sie effektiver sein können, wenn Sie gefälschte Daten anwenden, um ein realistischeres Erlebnis während Ihres Designprozesses zu schaffen.

Wenn Sie wissen möchten, wann mein nächstes Envato Tuts + -Tutorial erscheint, folgen Sie mir @reifman auf Twitter oder besuchen Sie meine Instructor-Seite. Momentan arbeite ich an zwei Serien, die Sie vielleicht schätzen:

  1. Programmierung mit der Yii2-Serie
  2. Aufbau Ihres Startups mit PHP über Meeting Planner; Planen Sie Ihr erstes Meeting heute dort.

ähnliche Links

  • Fzaninotto / Faker (GitHub)
  • Füllinhalt: Werkzeuge, Tipps und ein dynamisches Beispiel (Envato Tuts +)
  • Programmierung mit Yii2: Automatisiertes Testen mit Codeception (Envato Tuts +)