A simple Cypress & Playwright plugin for generating realistic test data using Faker.js.
npm install cypress-playwright-data-genbash
npm install cypress-playwright-data-gen
`
`bash
yarn add cypress-playwright-data-gen
`
Usage In Cypress
- Importing - Add the commands in your cypress/support/e2e.js (or commands.js):
`javascript
import 'cypress-playwright-data-gen/cypress/commands';
`
$3
Just an example — OrangeHRM doesn’t have public signup, so let’s imagine we were testing a form or registration flow:
`javascript
//Generate user data (Firstname, Lastname, Email, etc)
it('uses generated user data for a signup-style test', () => {
cy.generateUser().then((user) => {
cy.visit('https://example.com/register');
cy.get('#firstName').type(user.firstName);
cy.get('#lastName').type(user.lastName);
cy.get('#email').type(user.email);
cy.get('#password').type(user.password);
cy.get('#submit').click();
cy.log(Generated user: ${user.firstName} ${user.lastName}, email: ${user.email});
});
});
//Generate card data (Card number, Cvv, Expiry date)
it('generates card data for payment-related tests', () => {
cy.generateCard().then((card) => {
cy.log(Card Number: ${card.number});
cy.log(Expiry: ${card.expiryMonth}/${card.expiryYear});
cy.log(CVV: ${card.cvv});
});
});
`
Usage In Playwright
- Importing - Import the generators directly and use them in your Playwright tests:
`javascript
import { generateUser, generateCard, generateAddress, generateTransaction, generateInstitution }
from 'cypress-playwright-data-gen/playwright/utils';
`
$3
Just an example — OrangeHRM doesn’t have public signup, so let’s imagine we were testing a form or registration flow:
`javascript
import { test, expect } from '@playwright/test';
import { generateUser, generateCard } from 'cypress-playwright-data-gen/playwright/utils';
//Generate user data (Firstname, Lastname, Email, etc)
test('uses generated user data for a signup-style test', async ({ page }) => {
const user = generateUser();
await page.goto('https://example.com/register');
await page.fill('#firstName', user.firstName);
await page.fill('#lastName', user.lastName);
await page.fill('#email', user.email);
await page.fill('#password', user.password);
await page.click('#submit');
console.log(Generated user: ${user.firstName} ${user.lastName}, email: ${user.email});
});
//Generate card data (Card number, Cvv, Expiry date)
test('generates card data for payment-related tests', async () => {
const card = generateCard();
console.log(Card Number: ${card.number});
console.log(Expiry: ${card.expiryMonth}/${card.expiryYear});
console.log(CVV: ${card.cvv});
});
``