Utilizarea lui Faker pentru a genera date de umplere pentru testarea automată

Ce veți crea

Faker este o bibliotecă open-source creată de Francois Zaninotto care generează date de umplere artificială pentru aplicația dvs. și necesitățile sale de testare.

Faker poate fi folosit într-o aplicație PHP de vanilie, într-un cadru cum ar fi Yii sau Laravel sau într-o bibliotecă de testare la care ne-am referit cu Codeception în acest tutorial anterior Envato Tuts +.

În tutorialul de astăzi, voi examina instalarea și utilizarea de bază ale lui Faker și capabilitățile acestuia. După cum spune Zaninotto:

"Fie că aveți nevoie să vă bootstrați baza de date, să creați documente excelente XML, să completați persistența dvs. pentru a testa stresul, sau să anonimați datele preluate de la un serviciu de producție, Faker este pentru dvs.".

Și, în ansamblu, oferă o gamă largă de capabilități simple, utile pentru orice regim de testare.

Un mic memento inainte de a incepe, eu particip la comentariile de mai jos. Sunt interesat în special dacă aveți gânduri suplimentare sau doriți să sugerați subiecte pentru tutoriale viitoare. Dacă aveți o sugestie de întrebare sau subiect, vă rugăm să postați mai jos. Puteți să mă contactați și pe Twitter @reifman direct.

Noțiuni de bază

Instalarea lui Faker

Am început prin crearea unui nou copac de cod și adăugarea fzaninotto / falsificator la compozitor.json de mai jos:

"nume": "Demonstrație Faker", "descriere": "pentru Envato Tuts +", "cuvinte cheie": ["faker", "php", "jeff reifman"], "homepage": "http: // www. lookahead.io/ "," tip ":" proiect "," licență ":" BSD-3-Clauză "," minimă stabilitate ":" stabil "," solicită ": " php ": => = 0 "," fzaninotto / faker ":" * " 

Apoi, am actualizat compozitorul:

Actualizarea dependențelor (inclusiv requ-dev) - Instalarea fzaninotto / faker (v1.6.0) Încărcare din cache Fișier de blocare de scriere Generarea fișierelor autoload 

Faker este instalat în directorul furnizorului. Deci, am încărcat în partea de sus a unui fișier index.php:

În continuare, am vrut să încerc câteva exemple simple de scenarii de generare de date.

Exemple simple

Am extins exemplele Faker după cum urmează și le-am fugit de la http: // localhost: 8888 / faker:

Nume; // "Lucy Cechtelar"; distanțier(); echo $ faker-> adresa; // "426 Jordy Lodge / Cartwrightshire, SC 88120-6700" spacer (); echo $ faker-> text; // Dolores se află în laboratorul de culturi și autoturisme. Beatae sunt fugit / et sit et mollitia sed. Fuga deserunt tempora facere magni omnis. Omnis quia temporibus laudantium / / sit minima sint. distanțier(); funcția spacer () echo '
„; ?>

Cu reîmprospătare rapidă, mi s-au prezentat rezultate variate, cum ar fi:

Ruthie Beier 37851 Flat Suite Gusikowski 594 Port Keithmouth, NM 06110 Reprezentarea unui reprezentant al unui modem arhitect necesar. Eroare maiores qui vero non omnis. Quaerat mollitia dolore deserunt quia quidem beatae. 

Și:

Darron Hessel 657 Elijah Lock Suite 202 Nitzschemouth, AZ 11166 Culpa dolorum quidem distincțio eius necesitatibus. Mollitia ut nostrum și ut quas veniam et. În cazul în care iure molestiae aperiam fuga voluptatibus quo. 

Și:

Fredy Fadel MD 53328 Eldora Isle Apt. 634 West Eleanore, CA 95798-3025 Eligendi eos laudantium eveniet ad. Într-adevăr, voluptatibus est quia voluptatem. Dolorum pariatur quaerat nulla.

Faker își îndeplinește promisiunea.

Furnizorii impliciți ai Faker

Toate metodele de generare a datelor din Faker sunt create din implementarea furnizorilor. Iată codul care înregistrează furnizorii impliciți ai Faker - este făcut pentru dvs.:

addProvider (noul Faker \ Provider \ ro_US \ Persoană ($ faker)); $ faker-> addProvider (noul Faker \ Provider \ ro_US \ Adresa ($ faker)); $ faker-> addProvider (noul Faker \ Provider \ ro_US \ PhoneNumber ($ faker)); $ faker-> addProvider (noul Faker \ Provider \ ro_US \ Company ($ faker)); $ faker-> addProvider (noul Faker \ Provider \ Lorem ($ faker)); $ faker-> addProvider (noul Faker \ Provider \ Internet ($ faker));

Deci, mai sus, când am cerut o adresa de la Faker, a căutat pe toți furnizorii pentru metode potrivite, folosind în cele din urmă Adresa() furnizor.

Puteți, de asemenea, să vă scrieți proprii furnizori sau să căutați un număr de extensii la Faker care sunt disponibile pe web.

Modificatorii

Faker oferă, de asemenea, modificatori specifici pentru a vă ajuta să vă testați, cum ar fi unic (), opțional () sau valid (). De exemplu, puteți genera numere unice:

// unique () forțează furnizorilor să returneze valori unice $ values ​​= array (); pentru ($ i = 0; $ i < 10; $i++)  // get a random digit, but always a new one, to avoid duplicates $values []= $faker->unic () -> randomDigit;  print_r (valori $);

Iată rezultatul valorilor unice:

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

Dacă utilizați opțional () metoda, unele numere vor fi returnate ca NUL ca și cum utilizatorul nu a introdus un câmp pe formularul dvs.. Notă: Nu am putut obține această metodă să funcționeze corect.

Cu valabil(), puteți înregistra funcții care determină dacă datele de umplere îndeplinesc anumite cerințe sau ar repeta o eroare sau ar genera un mesaj de eroare pe un formular de utilizator.

Explorarea furnizorilor

Faker oferă un set larg de metode de generare a datelor aleatorii pentru aplicația dvs.:

  • Baza: metode simple pentru scrisori aleatoare, numere, șiruri prelucrate și regex
  • Lorem Ipsum Text: text aleator latin
  • Persoană: numele oamenilor
  • Adresă: adrese de corespondență
  • Număr de telefon: numere de telefon
  • Compania: numele companiilor
  • Textul real: textul real scrise de ființe umane și versiuni latine fără semnificație
  • Data și ora: date și ore aleatorii
  • Internet: e-mailuri, domenii, etc.
  • Agent de utilizator: șiruri de browser
  • Plata: cartele de credit și numerele și numerele SWIFT
  • Culoare: culori aleatorii
  • Fișier: extensii de fișiere, tipuri de fișiere și nume de fișiere
  • Image: URL-uri de imagini de umplere de diferite tipuri
  • Uuid: ID-uri unice
  • Coduri de bare: diferite tipuri de coduri de bare, de ex. ISBN13
  • Diverse: coduri de criptare, coduri de țară, etc.
  • Biased: numere aleatorii cu părtinire

Să experimentăm câteva alte metode.

informatii de plata

Codul de mai jos generează zece persoane, informațiile despre cărțile de credit și codurile de securitate:

$ faker = Faker \ Fabrica :: crea (); pentru ($ i = 0; $ i<10;$i++)  $cc = $faker->Detaliile cardului de credit; $ Cc [ 'securitate'] = $ faker-> numberBetween (199,499); var_dump ($ cc); distanța (2); 

Iată câteva rezultate din codul de mai sus:

Imagini

Iată un exemplu simplu de generare a imaginii:

$ faker = Faker \ Fabrica :: crea (); $ Width = 320; $ Înălțime = 240; echo " '; 

Dar puteți genera și pisici:

echo " ';

S-ar putea să fie capacitatea de generare a pisicilor care ma câștigat. Nu pot să aștept tipărirea tridimensională și activarea sufletului pentru a lucra cu lucruri de genul asta.

Date internaționalizate

Cu codul de mai jos, am creat un tabel cu patru coloane de nume din Franța, Rusia, America și China:

echo "
limba franceza Rusă Engleză chinez
„; $ faker = Faker \ Factory :: crea ('fr_FR'); // crea un falsificator francez pentru ($ i = 0; $ i < 10; $i++) echo $faker->Nume; distanțier(); spacer (2); echo "„; $ faker = Faker \ Factory :: crea ('Ru_RU'); // creați limba rusă pentru ($ i = 0; $ i < 10; $i++) echo $faker->Nume; distanțier(); spacer (2); echo "„; $ faker = Faker \ Factory :: crea ('En_US'); // creați limba engleză pentru ($ i = 0; $ i < 10; $i++) echo $faker->Nume; distanțier(); spacer (2); echo "„; $ faker = Faker \ Factory :: crea ('zh_CN'); // crează chineză pentru ($ i = 0; $ i < 10; $i++) echo $faker->Nume; distanțier(); echo '
„;

Iată rezultatele:

Crearea de adrese false de e-mail

Iată un exemplu de cod pentru a genera 25 de adrese false de e-mail de la furnizori gratuit, cum ar fi Gmail și Yahoo:

$ valori = array (); pentru ($ i = 0; $ i < 25; $i++)  // get a random digit, but also null sometimes $values []= $faker->freeEmail ();  print_r (valori $); Ieșire; 

Iată rezultatul rezultat:

Generarea de documente XML

Faker oferă un exemplu util de generare a XML; cu toate acestea, este necesar să lucrați cu un cadru și să aveți o arhitectură de vizualizare:

      boolean (25)): a>   
Acasă? oraș?> cod poștal? stat?>
boolean (33)):>> bs?> boolean (33)):>> boolean (15)):>>
text (400)?>]]>

In concluzie

Sper că acest lucru a servit ca o introducere de bază pentru tine, către Faker, o bibliotecă PHP gratuită, liberă, cu o bază liberă.

Dacă vreți să citiți mai departe, vă recomandăm conținutul de filler al lui Jim Nielsen: Instrumente, sfaturi și un exemplu dinamic (Envato Tuts +), care oferă un designer de aplicații să se ocupe de generarea de date. El sugerează că puteți fi mai eficient atunci când aplicați date false pentru a crea o experiență mai realistă în timpul procesului de proiectare.

Dacă doriți să știți când vine următorul tutorial Envato Tuts +, urmați-mă @reifman pe Twitter sau verificați pagina de instructor. În prezent, lucrez la două serii pe care le puteți aprecia:

  1. Programare cu seria Yii2
  2. Construirea Startup cu PHP despre planificatorul întâlnirilor; du-te la prima întâlnire de astăzi.

Link-uri conexe

  • fzaninotto / Faker (GitHub)
  • Conținut de conținut: Instrumente, sfaturi și un exemplu dinamic (Envato Tuts +)
  • Programarea cu Yii2: Testarea automată cu codificare (Envato Tuts +)
Cod