Cypress x Faker.js : randomizzare i dati dei test conviene, spieghiamo come e perchè

Ciro Tartaglia
weBeetle
Published in
3 min readMay 31, 2024

Nel mondo dello sviluppo e del testing del software, la creazione di dati di test realistici e dinamici è cruciale per garantire l’affidabilità e l’efficacia dei test automatizzati. Faker.js è uno strumento potente che consente di generare dati fittizi in modo rapido e efficiente. In combinazione con Cypress, un framework di test end-to-end per applicazioni web (che ormai mi aspetto conosciate molto bene👀 ) faker.js può essere utilizzato per creare scenari di test dinamici e realistici, migliorando la qualità complessiva dei test. Iniziamo dalle basi.

Photo by Edge2Edge Media on Unsplash

Cos’è faker.js:

Faker.js è una libreria JavaScript che genera dati falsi come nomi, indirizzi, numeri di telefono, e-mail e molto altro ancora. È ampiamente utilizzato nello sviluppo di software e nel testing per creare dati di test che assomiglino il più possibile ai dati reali. Con faker.js, è possibile generare quantità significative di dati in diversi formati e strutture, risparmiando tempo e sforzi nella creazione di dati di test manuali.

Perchè usare faker.js?

Dati dinamici:

Faker.js consente di generare dati casuali ogni volta che vengono eseguiti i test. Questo garantisce che i test siano eseguiti su una varietà di dati diversi, migliorando la copertura dei test e rilevando eventuali bug o comportamenti inaspettati. In pratica puoi letteralmente testare con parole numeri o pensieri che non sono tuoi, e per un tester non c’è niente di meglio che rompere gli schemi.

Facilità d’uso:

Integrare faker.js con Cypress è semplice e intuitivo. Faker.js può essere facilmente importato nei file di test Cypress e utilizzato per popolare form, creare utenti, o qualsiasi altro scopo sia necessario durante i test (qualche esempio sarà presente successivamente).

Scenari realistici:

Utilizzando dati generati casualmente da faker.js, è possibile simulare scenari realistici e variabili durante i test. Ad esempio, è possibile testare la funzionalità di registrazione ad un’applicazione con una vasta gamma di dati utente simulati o provare ad inserire in un form dati tutto ciò che non ci verebbe mai in mente ma agli utenti finali si!

Riduzione della dipendenza dai dati statici:

Eliminando la dipendenza da dati statici predefiniti, faker.js permette di creare test più robusti e adattabili. I dati generati dinamicamente si adattano automaticamente ai cambiamenti nell’interfaccia utente o nei requisiti di test, riducendo la necessità di aggiornare costantemente i dati di test manualmente.

Parallelizzazione:

Un aspetto spesso sottovalutato è la necessità di dover riprodurre contemporaneamente lo stesso test nello stesso ambiente con però alcuni dati diversi . Grazie a faker.js potrai lanciare più volte lo stesso test nello stesso ambiente di sviluppo senza doverti preoccupare di dati duplicati che spesso non sono contemplati nelle logiche dei software. In pratica scrivi un solo test e puoi lanciarlo contemporaneamente 100 volte perchè i dati randomici non ti porteranno mai ad avere duplicati ma solo un’immensa varietà di test con i loro diversi output.

Come utilizzare Faker.js con Cypress

Integrare faker.js con Cypress è un processo semplice. Ecco una breve guida su come iniziare:

1. Installazione

npm install @faker-js/faker --save-dev

2. Importa faker nei tuoi test e nel tuo index.js

//importa questo nel tuo index.js 
cy.faker = require('faker');

//importa questo nei tuoi test cypress
import {faker} from '@faker-js/faker';

3. Utilizza le funzioni di faker.js per generare dati all’interno dei tuoi test Cypress dichiarando le costanti (ce ne sono tantissime in base al contesto desiderato ma per quello ti invito a dare un’occhiata al loro sito):

const username = faker.internet.userName();
const email = faker.internet.email();
const password = faker.internet.password();

4. Genera i dati richiesti

cy.get('#username').type(username);
cy.get('#email').type(email);
cy.get('#password').type(password);

Concludendo..

Come hai potuto osservare Faker.js è uno strumento potente che consente di generare dati di test casuali e realistici in modo efficiente. Quando combinato con Cypress, diventa uno strumento essenziale per creare test automatizzati dinamici e affidabili. Utilizzando faker.js con Cypress, gli sviluppatori e i tester possono simulare una vasta gamma di scenari di utilizzo, migliorando la copertura dei test e la qualità complessiva del software. Se sei uno sviluppatore o un tester che cerca di migliorare i tuoi test automatizzati, considera l’utilizzo di faker.js con Cypress per ottenere risultati più efficaci e affidabili con una facilità sorprendente!

--

--

Ciro Tartaglia
weBeetle
Writer for

QA Software Automation Tester | 25 years old |Passionate Gamer | weBeetle employee