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!