Como usar collections do Postman para testes automatizados de API
1. Introdução às Collections do Postman e Testes Automatizados
Collections no Postman são conjuntos organizados de requisições HTTP que podem ser agrupadas, documentadas e executadas de forma automatizada. Elas servem como a base para transformar testes manuais de API em processos automatizados e repetíveis. Ao utilizar collections para automação, você ganha reutilização de scripts, organização lógica dos endpoints e integração direta com pipelines de CI/CD.
A principal diferença entre testes manuais e automatizados com collections está na execução: enquanto o teste manual exige que um desenvolvedor ou QA clique em cada requisição e verifique visualmente as respostas, a automação permite executar centenas de testes em segundos, com validações programáticas e relatórios detalhados.
2. Estruturação e Organização de uma Collection para Testes
Uma collection bem estruturada facilita a manutenção e a escalabilidade dos testes. Comece criando pastas dentro da collection para agrupar endpoints por funcionalidade, como "Autenticação", "Usuários" e "Produtos". Utilize variáveis de ambiente e globais para parametrizar URLs, tokens e outros dados que mudam entre ambientes.
Boas práticas de nomenclatura incluem usar nomes descritivos para as requisições, como "POST - Login com credenciais válidas" ou "GET - Listar produtos paginados". Adicione descrições detalhadas em cada requisição para documentar o propósito e os dados esperados.
Exemplo de estrutura de collection:
Collection: API de E-commerce
├── Pasta: Autenticação
│ ├── POST - Login
│ └── POST - Refresh Token
├── Pasta: Produtos
│ ├── GET - Listar todos
│ ├── GET - Buscar por ID
│ └── POST - Criar produto
└── Pasta: Pedidos
├── POST - Criar pedido
└── GET - Histórico de pedidos
3. Escrevendo Scripts de Teste no Postman
O Postman utiliza o Postman Sandbox, um ambiente JavaScript que permite escrever scripts de teste diretamente nas requisições. A sintaxe básica envolve o uso de pm.test() para descrever o teste e pm.expect() para fazer asserções.
Exemplo de script de teste para validar uma resposta de login:
pm.test("Status code é 200", function () {
pm.response.to.have.status(200);
});
pm.test("Resposta contém token de acesso", function () {
var jsonData = pm.response.json();
pm.expect(jsonData).to.have.property("access_token");
pm.expect(jsonData.access_token).to.be.a("string");
});
pm.test("Headers contém Content-Type JSON", function () {
pm.response.to.have.header("Content-Type", "application/json");
});
Você pode encadear múltiplas asserções e usar expressões regulares para validações mais complexas. O Postman também oferece atalhos como pm.response.to.have.status() para verificar códigos HTTP comuns.
4. Trabalhando com Dados Dinâmicos e Pré-requisições
Scripts de pré-requisição (Pre-request Script) são executados antes do envio da requisição e são ideais para gerar dados dinâmicos, como timestamps únicos ou UUIDs. Para extrair valores de respostas anteriores, use pm.response.json() e armazene em variáveis.
Exemplo de cadeia de requisições dependentes (login → recurso protegido):
No script de pré-requisição do login:
// Gerar email único para teste
var timestamp = Date.now();
pm.variables.set("email", "usuario_" + timestamp + "@teste.com");
pm.variables.set("senha", "Senha@123");
No script de teste do login, extraia o token:
var jsonData = pm.response.json();
pm.collectionVariables.set("authToken", jsonData.access_token);
Na requisição protegida, use a variável no header:
Authorization: Bearer {{authToken}}
5. Execução Automatizada com Collection Runner
O Collection Runner permite executar toda a collection ou pastas específicas com configurações avançadas. Você pode definir iterações, delays entre requisições e arquivos de dados externos (CSV ou JSON) para alimentar variáveis.
Para usar dados externos, crie um arquivo CSV:
email,senha,produto_id
teste1@email.com,Senha123,101
teste2@email.com,Senha456,102
teste3@email.com,Senha789,103
No Collection Runner, selecione o arquivo CSV como fonte de dados. As variáveis do CSV substituirão automaticamente as variáveis da collection durante cada iteração. Após a execução, analise os resultados no relatório de pass/fail e exporte os logs para debugging.
6. Integração com CI/CD e Ferramentas de Linha de Comando
Newman é a ferramenta de linha de comando do Postman que permite executar collections headless, sem interface gráfica. Instale via npm:
npm install -g newman
Execute uma collection com ambiente e relatório:
newman run "API-Ecommerce.postman_collection.json" \
-e "homologacao.postman_environment.json" \
--folder "Autenticação" \
--reporters cli,htmlextra \
--reporter-htmlextra-export ./reports/relatorio.html
Para integrar com GitHub Actions, crie um workflow:
name: Testes de API
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Instalar Newman
run: npm install -g newman
- name: Executar testes
run: |
newman run "tests/collection.json" \
-e "tests/env.json" \
--reporters cli,junit \
--reporter-junit-export results.xml
7. Boas Práticas e Troubleshooting em Testes Automatizados
Para lidar com timeouts e erros de rede, configure delays entre requisições no Collection Runner ou use pm.wait() em scripts para simular comportamento humano. Testes idempotentes são cruciais: cada execução deve produzir o mesmo resultado, independentemente do estado anterior do sistema.
Estratégias para testes isolados incluem criar dados de teste no início de cada execução e limpá-los ao final, utilizando scripts de pré-requisição e pós-requisição. Versionamento de collections é essencial: exporte as collections como arquivos JSON e mantenha no controle de versão (Git). Para colaboração em equipe, use o Postman Workspaces e compartilhe ambientes e variáveis.
Referências
- Documentação oficial do Postman: Escrevendo scripts de teste — Guia completo sobre sintaxe do Postman Sandbox e exemplos de asserções.
- Newman: Execução de collections via linha de comando — Repositório oficial com instruções de instalação, parâmetros e opções de relatórios.
- Postman Collection Runner: Execução automatizada — Tutorial sobre configuração de iterações, delays e arquivos de dados externos.
- Integrando Postman com GitHub Actions — Artigo prático mostrando como configurar workflows de CI/CD com Newman.
- Boas práticas para testes de API com Postman — Guia oficial com dicas de organização, nomenclatura e versionamento de collections.
- Postman Sandbox API Reference — Referência completa das funções disponíveis no ambiente de execução do Postman.