Postman é uma das ferramentas mais usadas para enviar requisições HTTP e validar o comportamento de APIs. Ele começou como extensão de navegador e evoluiu para um aplicativo desktop capaz de lidar com requisições simples, coleções, scripts de teste e execuções automatizadas. Se você constrói ou consome APIs, vale dominar o fluxo básico de teste.
Neste guia, você vai testar uma API no Postman do jeito que faria no dia a dia: enviar requisições, inspecionar respostas, escrever asserções, configurar ambientes para alternar entre staging e produção e executar uma coleção completa com o Collection Runner. Os exemplos usam uma API pública, então você pode acompanhar sem configurar backend próprio.
Configure o Postman e envie sua primeira requisição
Baixe o Postman no site oficial e instale o aplicativo desktop. Você pode usá-lo localmente sem conta, mas o login permite sincronizar coleções entre dispositivos.
Para criar sua primeira requisição:
- Abra o Postman.
- Clique em New.
- Escolha HTTP Request.
- Selecione o método
GET. - Informe a URL:
GET https://jsonplaceholder.typicode.com/users/1
Clique em Send.
No painel de resposta, verifique:
- código de status, como
200 OK; - tempo de resposta;
- tamanho da resposta;
- corpo retornado;
- headers da resposta.
Use as abas Pretty, Raw e Preview para alternar entre JSON formatado, resposta bruta e visualização renderizada.
Enviando uma requisição POST
Para testar envio de dados:
- Altere o método para
POST. - Abra a aba Body.
- Selecione raw.
- Escolha JSON no seletor de formato.
- Cole um payload:
{
"name": "Maria Chen",
"email": "maria.chen@example.com"
}
Quando você escolhe JSON como tipo de corpo, o Postman adiciona automaticamente o header:
Content-Type: application/json
Se a API exigir autenticação, adicione headers na aba Headers, por exemplo:
Authorization: Bearer {{auth_token}}
Se quiser revisar quais códigos HTTP uma API REST deve retornar, veja este guia sobre códigos de status HTTP que APIs REST devem usar.
Organize requisições em coleções
Uma requisição isolada serve para validação rápida. Testes reais geralmente envolvem fluxos:
- criar um usuário;
- buscar o usuário;
- atualizar o usuário;
- excluir o usuário.
No Postman, agrupe essas requisições em collections.
Para criar uma coleção:
- Clique em Collections na barra lateral.
- Clique no ícone +.
- Dê um nome descritivo, como
Testes de fumaça da API de Usuários. - Salve cada requisição com Ctrl/Cmd + S.
- Nomeie cada requisição com clareza, por exemplo:
Criar usuárioBuscar usuário por IDAtualizar usuárioExcluir usuário
Você também pode criar pastas dentro da coleção, por exemplo:
Testes de fumaça da API de Usuários
├── Auth
│ └── Login
├── Users
│ ├── Criar usuário
│ ├── Buscar usuário
│ ├── Atualizar usuário
│ └── Excluir usuário
Coleções também são a unidade de compartilhamento. Você pode exportar uma coleção como JSON ou compartilhar um link se estiver usando sincronização em nuvem. Quem importar a coleção terá as mesmas requisições e scripts.
Scripts compartilhados na coleção
O Postman permite adicionar scripts em três níveis:
- requisição;
- pasta;
- coleção.
Um pre-request script no nível da coleção roda antes de cada requisição. Isso é útil para gerar timestamps, atualizar tokens ou preparar variáveis.
Um script de teste no nível da coleção roda após cada requisição. Isso é útil para validações globais, como tempo máximo de resposta.
Exemplo de teste global:
pm.test("Tempo de resposta abaixo de 1000ms", function () {
pm.expect(pm.response.responseTime).to.be.below(1000);
});
Definir regras comuns uma vez evita duplicação e mantém cada requisição focada no comportamento específico do endpoint.
Escreva testes na aba Tests
Enviar uma requisição mostra o que a API retornou. Escrever um teste valida automaticamente se a resposta está correta.
No Postman, os testes são escritos em JavaScript na área Scripts da requisição. Em versões mais antigas, essa área aparece como aba Tests.
O objeto principal é pm.
O padrão mais usado é:
pm.test("Nome do teste", function () {
// asserções aqui
});
Se uma expectativa falhar, o teste fica vermelho.
Asserções comuns no Postman
// Verifica o código de status
pm.test("O código de status é 200", function () {
pm.response.to.have.status(200);
});
// Verifica o tempo de resposta
pm.test("A resposta está abaixo de 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
// Verifica um campo no corpo JSON
pm.test("O usuário tem o email esperado", function () {
const body = pm.response.json();
pm.expect(body.email).to.eql("maria.chen@example.com");
});
// Verifica um header
pm.test("Content-Type é JSON", function () {
pm.expect(pm.response.headers.get("Content-Type"))
.to.include("application/json");
});
A sintaxe de asserção vem do Chai. Por isso, pm.expect suporta padrões como:
pm.expect(value).to.eql(expected);
pm.expect(value).to.include("text");
pm.expect(value).to.be.above(10);
pm.expect(value).to.be.below(500);
Depois de clicar em Send, veja os resultados em Test Results. Cada teste aparece como aprovado ou reprovado.
Boas práticas para testes
Use nomes de teste que expliquem o comportamento esperado:
pm.test("Retorna email do usuário solicitado", function () {
const body = pm.response.json();
pm.expect(body.email).to.exist;
});
Evite nomes genéricos:
pm.test("Teste 1", function () {
// ruim para debug
});
Priorize asserções que realmente afetam consumidores da API:
- status code;
- estrutura do JSON;
- campos obrigatórios;
- tipos de dados;
- headers importantes;
- regras de negócio visíveis na resposta.
Evite validar valores instáveis que você não controla, como timestamps gerados pelo servidor, IDs randômicos ou campos que mudam a cada execução. Isso reduz falsos negativos.
O painel de Snippets do Postman ajuda a inserir asserções prontas e aprender a API pm.
Para se aprofundar, veja estes guias sobre asserções de API e como escrevê-las bem e exemplo de caso de teste de API.
Use ambientes e variáveis
Evite hardcoding de URLs como:
https://api.staging.example.com
Se você repetir essa URL em várias requisições, mudar de staging para produção vira retrabalho. Use environments.
Um ambiente é um conjunto nomeado de variáveis.
Criando um ambiente
- Abra a área de ambientes no Postman.
- Crie um ambiente chamado
Staging. - Adicione a variável:
base_url = https://jsonplaceholder.typicode.com
- Crie outro ambiente chamado
Productioncom outro valor debase_url.
Agora, use a variável na requisição:
GET {{base_url}}/users/1
Selecione o ambiente ativo no canto superior direito. Todas as requisições que usam {{base_url}} passam a apontar para o ambiente selecionado.
Reutilizando dados entre requisições
Variáveis também ajudam a encadear fluxos. Por exemplo, uma requisição de login pode capturar um token da resposta e salvá-lo no ambiente:
pm.test("Salva o token de autenticação", function () {
const token = pm.response.json().token;
pm.environment.set("auth_token", token);
});
Depois, outras requisições podem usar:
Authorization: Bearer {{auth_token}}
Esse padrão é útil para fluxos com estado:
- fazer login;
- salvar token;
- criar recurso;
- salvar ID criado;
- buscar recurso pelo ID;
- excluir recurso.
Exemplo salvando um ID:
pm.test("Salva o ID do usuário criado", function () {
const body = pm.response.json();
pm.environment.set("user_id", body.id);
});
Uso posterior:
GET {{base_url}}/users/{{user_id}}
Escopos de variáveis no Postman
O Postman tem diferentes escopos:
| Escopo | Uso recomendado |
|---|---|
| Variável de ambiente | Valores que mudam entre staging, produção e local |
| Variável de coleção | Valores constantes para uma coleção específica |
| Variável global | Valores disponíveis em todo o workspace |
| Variável local | Valores temporários durante uma execução |
Escolha o menor escopo possível. Isso reduz colisões e evita que uma variável usada em uma coleção afete outra.
Execute uma coleção inteira com o Collection Runner
Clicar em Send em cada requisição funciona no começo, mas fica lento quando a suíte cresce. O Collection Runner executa uma coleção inteira em sequência e mostra um resumo de aprovação/reprovação.
Para executar uma coleção:
- Abra a coleção.
- Clique em Run ou no menu de três pontos e escolha Run collection.
- Selecione o ambiente.
- Defina o número de iterações.
- Opcionalmente, anexe um arquivo de dados CSV ou JSON.
- Clique em Run.
O Postman executa as requisições de cima para baixo e roda os testes de cada uma.
A tela de resultados mostra:
- requisições executadas;
- testes aprovados;
- testes reprovados;
- detalhes de falha;
- histórico de execuções.
Esse fluxo funciona bem como verificação de regressão depois de um deploy.
Ordene a coleção como uma jornada
A ordem importa. Se uma requisição depende de dados criados antes, coloque-a depois da requisição que cria esses dados.
Exemplo:
1. Login
2. Criar usuário
3. Buscar usuário criado
4. Atualizar usuário
5. Validar atualização
6. Excluir usuário
Esse formato transforma a coleção em um roteiro executável de uma jornada real.
Testes orientados por dados
Para testar várias entradas sem duplicar requisições, use um arquivo CSV ou JSON no Collection Runner.
Exemplo de CSV:
email,password,expected_status
valid@example.com,correct-password,200
invalid@example.com,wrong-password,401
missing@example.com,,400
Na requisição, use as colunas como variáveis:
{
"email": "{{email}}",
"password": "{{password}}"
}
No teste, valide o status esperado:
pm.test("Retorna o status esperado", function () {
pm.response.to.have.status(Number(pm.iterationData.get("expected_status")));
});
Cada linha vira uma iteração. Isso permite testar múltiplos cenários com a mesma requisição.
O artigo sobre testes de API orientados a dados com CSV e JSON detalha esse padrão.
Para executar a mesma coleção em CI sem interface gráfica, use o Newman, a ferramenta de linha de comando do Postman. Veja também a comparação Newman versus Postman.
Onde o Postman pode ficar pesado
O Postman funciona muito bem para testes exploratórios e suítes pequenas ou médias. Em projetos maiores, dois pontos costumam aparecer.
Primeiro, asserções automatizadas exigem JavaScript. Para desenvolvedores, isso é flexível. Para pessoas de QA ou membros menos técnicos, pode criar uma curva de aprendizado.
Segundo, design da API, testes, mocking e documentação podem ficar separados. Quando isso acontece, a especificação da API e os testes podem se desalinhar.
Apidog é uma plataforma de API que aborda esses pontos. Ele importa coleções do Postman diretamente, então a migração não precisa começar do zero. Asserções podem ser construídas visualmente sem código, com opção de scripts quando necessário. Como design, depuração, mocking, testes e documentação compartilham uma única fonte de verdade, os testes tendem a permanecer alinhados com a especificação da API.
Se você está comparando ferramentas, veja esta lista de alternativas ao Postman para testes de API. Você também pode baixar o Apidog e importar uma coleção existente para comparar o fluxo.
Isso não significa que você precisa abandonar o Postman. Ele continua sendo uma escolha sólida para verificações rápidas e equipes que já o utilizam. O ponto é entender onde cada ferramenta se encaixa melhor.
Perguntas frequentes
Preciso escrever código para testar APIs no Postman?
Para enviar requisições e ler respostas, não. Para asserções automatizadas, sim. A área de testes do Postman executa JavaScript usando o objeto pm. Os padrões são simples e podem ser copiados dos snippets integrados, mas ainda exigem algum código. Se você precisa de um construtor visual de asserções sem código, uma plataforma como o Apidog cobre esse caso.
Qual é a diferença entre uma coleção do Postman e um ambiente?
Uma coleção é um conjunto de requisições agrupadas, geralmente com testes. Um ambiente é um conjunto de variáveis, como base_url, auth_token ou user_id.
Coleções definem o que será enviado. Ambientes definem os valores que mudam entre local, staging e produção.
Como executo testes do Postman automaticamente em CI?
Use o Newman, o executor de linha de comando do Postman.
Exporte sua coleção e seu ambiente, depois execute:
newman run collection.json -e environment.json
Se algum teste falhar, o Newman retorna código diferente de zero. Isso permite quebrar o pipeline de CI quando a suíte falha.
Veja também o guia sobre automação de testes de API em CI/CD.
O Postman pode testar mais do que APIs REST?
Sim. O Postman moderno suporta GraphQL, gRPC, WebSocket e SOAP, além de HTTP/REST. A configuração muda conforme o protocolo, mas o conceito de requisição, resposta e validação continua parecido.
Quantas asserções uma requisição deve ter?
O suficiente para confirmar o comportamento esperado, sem transformar uma mudança pequena em várias falhas redundantes.
Uma base prática:
- status code;
- tempo de resposta;
- formato do corpo;
- dois ou três campos importantes para o endpoint.
Mantenha cada bloco pm.test focado em uma expectativa. Assim, quando falhar, a mensagem aponta exatamente o que quebrou.
Top comments (0)