QA Inteligente: O Fim da Caça por CPFs Válidos para Testar APIs 🕵️‍♀️

cover for QA Inteligente: O Fim da Caça por CPFs Válidos para Testar APIs 🕵️‍♀️

Se você é QA e trabalha com APIs, já conhece essa história: você prepara sua collection no Postman para testar o endpoint de cadastro de usuários (POST /clientes, POST /usuarios, etc.). Configura o body, os headers, os testes de asserção… tudo pronto. Você clica em “Send” e… {"erro": "CPF inválido"}.

Pior ainda: você está rodando uma suíte de testes inteira com o Collection Runner, e ela falha logo no começo porque o CPF que você deixou fixo no corpo da requisição não é válido. Que frustração! 😩

Ter que parar tudo, abrir o Google, procurar um “gerador de CPF online”, copiar e colar no Postman quebra totalmente o fluxo de trabalho e a automação. Mas hoje vamos acabar com isso. Vou te mostrar como fazer o Postman gerar um CPF 100% válido para você a cada execução, de forma automática.

O Problema: Por Que os Dados de Teste Estáticos Falham?

Um CPF não é só um número qualquer. Ele possui uma lógica interna com dois dígitos verificadores que são calculados com base nos nove primeiros dígitos. É um mecanismo simples para evitar erros de digitação.

Quando testamos APIs, especialmente endpoints de criação (POST), usar dados estáticos (sempre o mesmo CPF) pode mascarar problemas. O ideal é usar dados dinâmicos e realistas, e é aí que a automação entra em cena.

A Solução: Gerando Dados Dinâmicos com Pre-request Scripts 🤖

O Postman tem uma ferramenta poderosa chamada Pre-request Script. É um trecho de código que roda antes da sua requisição ser enviada. Vamos usá-lo para criar um CPF válido e armazená-lo em uma variável, pronto para ser usado.

Passo 1: Onde Colocar o Código

No Postman, abra sua coleção de testes de API. Clique nos três pontinhos ao lado do nome da coleção e vá em “Edit”. Em seguida, abra a aba “Pre-request Scripts”.

Dica: Colocando na coleção, o script rodará para todas as requisições dentro dela, o que é perfeito para testes de fluxo (criar usuário, depois fazer login, etc.).

Passo 2: O Script Mágico

Agora, cole o código JavaScript abaixo no editor do Pre-request Script:

function gerarCpf() {
    const nums = [];
    for (let i = 0; i < 9; i++) {
        nums.push(Math.floor(Math.random() * 10));
    }

    const dig1 = calcularDigito(nums);
    const dig2 = calcularDigito([...nums, dig1]);

    const cpfArray = [...nums, dig1, dig2];
    const cpfSemPontuacao = cpfArray.join('');
    const cpfFormatado = `${cpfArray.slice(0,3).join('')}.${cpfArray.slice(3,6).join('')}.${cpfArray.slice(6,9).join('')}-${cpfArray.slice(9).join('')}`;

    return {
        formatado: cpfFormatado,
        semPontuacao: cpfSemPontuacao
    };
}

function calcularDigito(digs) {
    let soma = 0;
    for (let i = 0; i < digs.length; i++) {
        soma += digs[i] * ((digs.length + 1) - i);
    }
    const resto = soma % 11;
    return resto < 2 ? 0 : 11 - resto;
}

// Gerar CPF
const cpf = gerarCpf();

// Armazenar nas variáveis de ambiente ou coleção
pm.environment.set("cpf_valido_pontuado", cpf.formatado);
pm.environment.set("cpf_valido", cpf.semPontuacao);

Este script executa o algoritmo de geração de CPF e usa o pm.collectionVariables.set para salvar o resultado em duas variáveis: cpf_valido (só números) e cpf_valido_pontuado.

Utilizando o CPF Dinâmico nos Seus Testes 🧪

Agora, a parte mais fácil. Em qualquer requisição dentro da sua coleção, vá até o Body e, no campo do CPF, use a sintaxe de variável do Postman.

Seu JSON de cadastro de usuário, por exemplo, ficará assim:

{
  "nomeCompleto": "Usuário de Teste Dinâmico",
  "email": "teste.{{$randomFirstName}}@meudominio.com",
  "documento": "{{cpf_valido}}"
}

Repare que usei {{cpf_valido}}, que o nosso script acabou de criar. De bônus, usei também a variável nativa {{$randomFirstName}} do Postman para gerar um e-mail aleatório, a lista de variáveis nativas do Postman podem ser consultadas nesse link Postman

O Poder no Collection Runner

A verdadeira mágica acontece quando você usa o Collection Runner para executar sua suíte de testes. A cada iteração, o Pre-request Script rodará novamente, gerando um CPF novo e válido a cada vez. Isso torna seus testes de cadastro muito mais robustos, simulando múltiplos usuários diferentes sem nenhum esforço manual.

Conclusão: De Testes Manuais para Testes Inteligentes 🚀

Incorporar a geração de dados dinâmicos diretamente no Postman eleva a qualidade e a eficiência dos seus testes de API. Você para de se preocupar com dados inválidos e foca no que realmente importa: encontrar bugs e garantir a qualidade do software.

Isso transforma um teste manual e repetitivo em um processo de automação inteligente, tornando suas suítes de teste mais confiáveis e seu trabalho como QA, mais produtivo.

Experimente na sua próxima suíte de testes e diga adeus à caça por CPFs válidos!