Como Gerar Dados Fakes de Testes no Playwright com Faker API - QA na Prática

Como Gerar Dados Fakes de Testes no Playwright com a Faker API

Quem nunca passou pela frustração de rodar um teste automatizado de cadastro de cliente, por exemplo, e ele falhar porque o e-mailteste123@gmail.com já existia no banco de dados? Criar e gerenciar massa de dados válida é um dos maiores desafios encontrados na rotina diária de nós engenheiros de qualidade

Se você utiliza o Playwright para suas automações, existe uma maneira elegante, robusta e totalmente dinâmica de resolver isso: integrando a biblioteca Faker (ou @faker-js/faker). Neste artigo do QA na Prática, você vai aprender a configurar e gerar nomes, e-mails, senhas e até documentos dinâmicos para seus testes de ponta a ponta.

Por que parar de usar dados estáticos?

Colocar valores fixos no seu código (o famoso hardcoded) direto nos campos de input gera problemas graves, como:

  • Testes Intermitentes (Flaky Tests): O teste passa na primeira execução, mas falha na segunda porque viola a restrição de campos únicos no banco de dados.
  • Falta de Cobertura Real: Testar sempre com o mesmo tamanho de palavra ou formato de texto esconde bugs de validação de layout que só aconteceriam com dados reais da produção.

Passo 1: Instalando a Faker API no seu projeto

A biblioteca oficial e mantida pela comunidade para o ecossistema JavaScript/TypeScript é o @faker-js/faker. Para instalá-la na pasta do seu projeto de automação, execute o comando abaixo no terminal:

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

Passo 2: Criando o Script de Teste Automatizado

Agora, vamos criar um cenário prático. Imagine que precisamos preencher um formulário de cadastro que exige nome completo, e-mail corporativo, telefone e uma bio de apresentação. Veja como o código fica limpo e inteligente:

import { test, expect } from '@playwright/test';
import { fakerPT_BR as faker } from '@faker-js/faker';

test('Deve realizar o cadastro de um novo usuário com dados dinâmicos', async ({ page }) => {
  // Gerando os dados fakes em português do Brasil
  const nomeFake = faker.person.fullName();
  const emailFake = faker.internet.email();
  const telefoneFake = faker.phone.number();
  const textoBio = faker.lorem.paragraph();

  // Acessando a página do formulário
  await page.goto('https://seu-sistema-de-testes.com/cadastro');

  // Preenchendo os campos com a massa de dados gerada
  await page.fill('input[name="nome"]', nomeFake);
  await page.fill('input[name="email"]', emailFake);
  await page.fill('input[name="telefone"]', telefoneFake);
  await page.fill('textarea[name="biografia"]', textoBio);

  // Clicando no botão de salvar
  await page.click('button[type="submit"]');

  // Validando se o cadastro foi concluído com sucesso
  await expect(page.locator('.alert-success')).toBeVisible();
});

Dica Avançada: Localização para Português (pt_BR)

Um dos grandes diferenciais ao importar utilizando import { fakerPT_BR as faker } from '@faker-js/faker'; é garantir que os dados gerados tenham a estrutura do nosso país. A Faker API criará nomes comuns no Brasil (como "Silva", "Santos") e estruturas de telefone compatíveis com os nossos DDDs.

Dica do QA na Prática: Combinar dados dinâmicos com o Playwright diminui drasticamente o tempo gasto limpando bancos de dados de homologação e permite que sua esteira de CI/CD rode infinitas vezes sem conflitos de registros!

Conclusão

Gerar dados realistas eleva o nível técnico dos seus scripts e aproxima a automação do comportamento real do usuário final.

Você já conhecia ou utiliza a Faker API nos seus projetos com Playwright? Conta aqui nos comentários abaixo como você gerencia as massas de testes no seu time atual!

Comentários

Postagens mais visitadas deste blog

Testes Manuais vs. Automatizados: O Guia Definitivo