DEV Community

Cover image for Como Criar Dados Realistas para Testes de API
Lucas
Lucas

Posted on • Originally published at apidog.com

Como Criar Dados Realistas para Testes de API

Todo teste de API precisa de dados para ser executado. Um teste de login precisa de usuários. Um teste de checkout precisa de pedidos, endereços e registros de pagamento. Um teste de busca precisa de milhares de linhas para validar paginação, ordenação e filtros. Criar esses dados manualmente é lento e geralmente produz dados “limpos” demais para revelar bugs reais.

Experimente o Apidog hoje

Um gerador de dados de teste resolve esse problema criando registros realistas e variados sob demanda. Em vez de manter arquivos estáticos ou copiar dados de produção, você define formatos, restrições e cenários. Este guia mostra o que é um gerador de dados de teste, quando usar cada tipo e como gerar dados diretamente no Apidog, sem depender de uma ferramenta separada.

Se você ainda está começando com simulação de respostas de API, leia primeiro o que é uma API mock e depois volte para a parte de dados.

O que é um gerador de dados de teste?

Um gerador de dados de teste é uma ferramenta ou biblioteca que cria registros sintéticos parecidos com dados reais de produção.

Em vez de repetir manualmente:

{
  "name": "test",
  "email": "test@test.com"
}
Enter fullscreen mode Exit fullscreen mode

você descreve o formato esperado:

{
  "name": "nome completo",
  "email": "e-mail válido",
  "price": "número entre 10 e 500"
}
Enter fullscreen mode Exit fullscreen mode

e o gerador preenche os campos com valores plausíveis.

Bons dados de teste têm três características:

  • Realismo: nomes parecem nomes, e-mails passam na validação e datas ficam em intervalos coerentes.
  • Variação: registros diferentes ajudam a encontrar erros de limite, ordenação, paginação e duplicidade.
  • Segurança: os dados são sintéticos, então você não expõe PII nem registros reais de clientes.

O objetivo não é gerar dados “bonitos”. É aumentar cobertura. Um bom gerador ajuda a testar casos como strings vazias, nomes com Unicode, números muito grandes, datas expiradas e combinações de campos opcionais.

Por que dados de teste realistas importam em APIs

APIs validam entradas o tempo todo. Elas rejeitam e-mails inválidos, limitam números fora do intervalo, tratam campos opcionais e retornam erros diferentes conforme o payload.

Se todos os seus testes usam dados como:

João da Silva
joao@exemplo.com
quantidade: 1
Enter fullscreen mode Exit fullscreen mode

você está testando quase sempre o caminho feliz.

Com dados gerados, você consegue:

  1. Testar em volume

    Gere 5.000 produtos para validar paginação, filtros, ordenação e performance.

  2. Forçar limites conhecidos

    Teste preço 0, quantidade negativa, nomes com 256 caracteres, datas antigas ou campos ausentes.

  3. Executar testes orientados a dados

    Rode o mesmo teste várias vezes, usando uma linha diferente de CSV ou JSON em cada execução.

Exemplo de dataset para validação de cadastro:

name,email,expectedStatus
Ana Silva,ana@example.com,201
,email@example.com,400
Carlos,carlos-invalid,400
李雷,li.lei@example.com,201
Enter fullscreen mode Exit fullscreen mode

O teste permanece o mesmo. O que muda são as entradas e as asserções esperadas.

Principais tipos de geradores de dados de teste

A maioria das equipes usa mais de um tipo, dependendo do fluxo.

1. Bibliotecas de código

Bibliotecas como Faker.js em JavaScript e Faker em Python oferecem uma API programática para gerar dados.

Exemplo com Faker.js:

import { faker } from '@faker-js/faker';

const user = {
  id: faker.string.uuid(),
  name: faker.person.fullName(),
  email: faker.internet.email(),
  createdAt: faker.date.past().toISOString()
};

console.log(user);
Enter fullscreen mode Exit fullscreen mode

Esse modelo é útil quando você precisa de:

  • controle total via código;
  • geração reprodutível com seeds;
  • integração com scripts, testes automatizados ou pipelines.

A desvantagem é a manutenção: você precisa escrever e versionar o código de geração. Se trabalha com JavaScript, veja também Faker.js e como usá-lo no Apidog.

2. Geradores autônomos e online

Ferramentas como Mockaroo permitem definir colunas em uma interface web e exportar CSV, JSON ou SQL.

Esse tipo funciona bem para:

  • criar rapidamente um arquivo de seed;
  • gerar massa inicial para testes manuais;
  • evitar código em cenários simples.

O ponto fraco é que o resultado costuma ser estático. Se o schema muda, você precisa voltar à ferramenta, ajustar colunas e exportar novamente.

3. Geradores baseados em schema

Se você já tem uma especificação OpenAPI ou JSON Schema, pode gerar dados a partir dos tipos, formatos e restrições definidos no contrato.

Exemplo simplificado de schema:

{
  "type": "object",
  "properties": {
    "id": { "type": "string", "format": "uuid" },
    "email": { "type": "string", "format": "email" },
    "status": {
      "type": "string",
      "enum": ["active", "pending", "closed"]
    }
  },
  "required": ["id", "email", "status"]
}
Enter fullscreen mode Exit fullscreen mode

Um gerador baseado em schema consegue produzir registros compatíveis com esse contrato.

Esse fluxo é útil quando você quer manter dados de teste alinhados com a API. Veja como gerar dados mock a partir de esquemas OpenAPI. O padrão JSON Schema torna isso possível ao definir tipos, formatos, enums e intervalos de forma legível por máquina.

4. Geradores baseados em IA

Geradores com IA são úteis quando os campos precisam fazer sentido em conjunto.

Exemplo: em vez de gerar campos independentes como title, description e category, você pode pedir registros coerentes de produtos, tickets de suporte ou perfis de usuário.

Esse tipo ajuda em cenários como:

  • descrições textuais mais naturais;
  • registros multifield coerentes;
  • dados de demonstração;
  • mocks mais próximos de interações reais.

Para um fluxo prático, veja gerando dados mock usando Claude Code.

Como gerar dados de teste no Apidog

Se você já testa APIs no Apidog, pode gerar dados no mesmo ambiente onde define endpoints, mocks e testes.

A geração aparece em três pontos principais do fluxo.

1. Mock inteligente com regras de campo

Quando o Apidog simula um endpoint, ele usa o nome e o tipo dos campos para gerar valores plausíveis.

Exemplos:

  • email retorna um e-mail válido;
  • createdAt retorna uma data;
  • price retorna um número;
  • status pode retornar valores definidos por regra.

Você também pode adicionar regras de mock por campo para controlar a saída e aproximar o comportamento da API real.

Baixe o Apidog e defina um endpoint para começar a receber dados realistas sem manter um db.json separado.

Mock inteligente no Apidog

2. Dados de teste gerados por IA

O Apidog também pode gerar lotes de registros a partir do schema do endpoint. Isso ajuda quando você precisa de variação sem escrever regras manualmente para cada campo.

Geração de dados de teste por IA no Apidog

3. Testes orientados a dados

Aqui o fluxo fecha: você anexa um dataset CSV ou JSON a uma etapa de teste, e o Apidog executa a etapa uma vez para cada linha.

Exemplo de JSON para teste orientado a dados:

[
  {
    "email": "ana@example.com",
    "password": "valid-password",
    "expectedStatus": 200
  },
  {
    "email": "invalid-email",
    "password": "valid-password",
    "expectedStatus": 400
  },
  {
    "email": "ana@example.com",
    "password": "",
    "expectedStatus": 400
  }
]
Enter fullscreen mode Exit fullscreen mode

O mesmo teste pode usar variáveis como:

{
  "email": "{{email}}",
  "password": "{{password}}"
}
Enter fullscreen mode Exit fullscreen mode

e validar o status esperado em cada execução.

A configuração é detalhada em como executar testes de API parametrizados a partir de CSV e JSON. Se você está comparando opções, veja qual ferramenta usar para testes de API orientados a dados. Para CI, os mesmos datasets podem ser executados com testes orientados a dados na CLI do Apidog.

Passo a passo: gerar dados de teste para um endpoint

  1. Abra seu projeto no Apidog.
  2. Selecione o endpoint que precisa de dados de teste.
  3. Defina o schema de resposta ou importe a especificação OpenAPI.
  4. Ative o mock do endpoint.
  5. Verifique a resposta gerada automaticamente.
  6. Ajuste campos específicos com regras de mock, se necessário.
  7. Crie um dataset CSV ou JSON para cenários de teste.
  8. Anexe o dataset à etapa de teste.
  9. Execute o teste e valide o resultado por linha.

Exemplo de regra prática:

Campo: status
Valores permitidos: active, pending, closed
Enter fullscreen mode Exit fullscreen mode

Resultado esperado no mock:

{
  "id": "b5c0a7e3-8b5f-4b55-8d6a-9c78a8e2d321",
  "email": "user@example.com",
  "status": "pending",
  "createdAt": "2026-06-10T12:30:00.000Z"
}
Enter fullscreen mode Exit fullscreen mode

Assim você tem respostas realistas para desenvolvimento e entradas repetíveis para automação no mesmo fluxo.

Como escolher um gerador de dados de teste

Se você precisa… Use Por quê
Controle programático total em JS/Python Biblioteca Faker Flexível, scriptável e reprodutível com seeds
Um arquivo de seed rápido e estático Mockaroo ou similar Sem código, exporta e usa
Dados alinhados ao contrato da API Gerador baseado em OpenAPI/JSON Schema Mantém dados sincronizados com a especificação
Registros contextuais e coerentes Gerador com IA Produz campos que fazem sentido em conjunto
Dados conectados a mocks e testes Apidog Gera, simula e executa testes no mesmo ambiente

Não existe uma opção única para todos os casos. Uma equipe com muitos scripts pode preferir Faker. Uma equipe que já projeta e testa APIs no Apidog pode manter geração, mock e testes orientados a dados no mesmo lugar.

Melhores práticas para dados de teste de API

  • Use seeds quando precisar reproduzir falhas.

    Um bug só é útil se você conseguir recriar o payload que o causou.

  • Gere dados inválidos também.

    Inclua campos vazios, tipos incorretos, payloads grandes demais, tokens expirados e valores fora do intervalo.

  • Mantenha dados e schema sincronizados.

    Quando o contrato muda, regenere os dados. Geração baseada em schema reduz esse trabalho manual.

  • Nunca use PII real.

    Dados sintéticos evitam vazamento de informações pessoais e reduzem riscos em repositórios e pipelines.

  • Ajuste o volume ao objetivo do teste.

    Testes de paginação e performance precisam de milhares de registros. Validações simples podem usar poucos casos bem escolhidos.

  • Separe cenários válidos e inválidos.

    Isso facilita entender falhas e manter asserções mais claras.

FAQ

Qual é a diferença entre um gerador de dados de teste e um servidor mock?

Um gerador cria os dados. Um servidor mock expõe esses dados via HTTP como respostas falsas de API.

Na prática, você geralmente quer os dois: o mock responde às requisições usando dados gerados.

Posso gerar dados de teste a partir da minha especificação OpenAPI?

Sim. Ferramentas baseadas em schema leem tipos, formatos e restrições da especificação para produzir registros compatíveis. Veja gerando dados mock a partir de esquemas OpenAPI.

É seguro enviar dados de teste gerados para um repositório?

Sim, desde que sejam totalmente sintéticos. Não envie exportações de produção, mesmo que pareçam inofensivas.

Como executo um teste contra muitas entradas geradas?

Use testes orientados a dados. Anexe um CSV ou JSON ao teste e execute uma iteração por linha. O guia de testes parametrizados mostra a configuração.

Preciso ativar um servidor falso para usar dados de teste?

Não necessariamente. Se você quer uma API REST descartável baseada em arquivo, veja o guia de json-server e JSONPlaceholder. Para mocks compartilháveis e baseados em schema, use o mock integrado do Apidog.

A versão resumida

Um gerador de dados de teste substitui o trabalho manual de inventar registros por regras, schemas ou prompts. Use bibliotecas como Faker quando precisar de controle via código, geração baseada em schema quando quiser aderência ao contrato da API, e IA quando precisar de registros contextuais.

Se você já testa APIs no Apidog, pode gerar dados, criar mocks inteligentes e executar testes orientados a dados no mesmo fluxo. Baixe o Apidog, aponte para um endpoint e valide respostas realistas desde a primeira requisição.

Top comments (0)