Capítulo 1.5: Teste de API com Postman
Tempo de estudo: 50 minutos
1. Por que testar APIs? Verificação Pré-lançamento
Imagine: antes de lançar um foguete, os engenheiros realizam testes de ativação dos sistemas. Pule a verificação — e a missão pode falhar!
Teste de API — seus testes de controle:
-
✅ Verificar a operacionalidade dos "nós de acoplamento"
-
🛡️ Detectar vulnerabilidades antes do uso em combate
-
📊 Garantir que os dados sejam transmitidos sem distorções
💡 Analogia espacial: Postman — como um console de teste do Centro de Controle de Missões (CCM) para simular todos os cenários: "E se solicitarmos dados de um planeta inexistente? O servidor aguentará 1000 requisições/seg?"
2. Postman: "Centro de Controle de Voos" para API
Funcionalidades:
-
📡 Envio de quaisquer requisições HTTP (GET, POST, PUT, DELETE)
-
🔍 Análise de respostas (códigos de status, cabeçalhos, corpo JSON)
-
🧪 Escrita de testes automáticos (JavaScript)
-
🌐 Trabalho com variáveis de ambiente (teste vs produção)
3. Primeira execução: Testando a API de planetas
Passo 1: Criar uma requisição
-
Abrir Postman → New → Request
-
Inserir URL:
https://api.spacexdata.com/v4/rockets
-
Selecionar método: GET
Passo 2: Enviar o "sinal"
Passo 3: Analisar a telemetria:
- Status: 200 OK
- Corpo da resposta (JSON): lista de foguetes com parâmetros
[
{
"name": "Falcon 1",
"type": "rocket",
"active": false,
"stages": 2,
"id": "5e9d0d95eda69955f709d1eb"
},
{
"name": "Falcon 9",
"type": "rocket",
"active": true,
"id": "5e9d0d95eda69973a809d1ec"
}
]
4. Diagrama: Componentes do Postman
[Espaço de trabalho]
├── Aba "Params" (Parâmetros de consulta)
├── Aba "Headers" (Cabeçalhos)
├── Aba "Body" (Corpo da requisição para POST/PUT)
├── Aba "Tests" (Scripts para verificações)
└── Painel de resposta (Status, Time, Size, Body)
5. Criar um cenário complexo: Lançamento de missão
Teste: Adicionar um novo planeta ao catálogo
-
Método: POST
-
URL:
https://jsonplaceholder.typicode.com/posts
(exemplo) -
Em Headers:
- Em Body (raw → JSON):
Verificação automática em Tests:
// Verificação de status
pm.test("Post created successfully", () => {
pm.response.to.have.status(201);
});
// Verificação da estrutura e dados da resposta
pm.test("Response contains the new post data", () => {
const response = pm.response.json();
pm.expect(response).to.have.property("id"); // Verifica se o servidor atribuiu um ID
pm.expect(response.title).to.eql("New Exoplanet Found");
});
6. Variáveis de ambiente: Terra vs Marte
Como testar em diferentes servidores (teste/produção)?
- Crie ambientes:
Local
→http://localhost:3000
-
Production
→https://api.nasa.gov
-
Nas requisições, use variáveis:
⚠️ Importante! Nunca teste
DELETE
em um servidor de produção!
7. Coleções: Biblioteca de missões espaciais
Agrupe as requisições:
Vantagens:- 🚀 Execução de todos os testes com um único botão
- 📤 Exportação/importação de configurações
- 👨🚀 Colaboração em equipe
8. Automação: Verificações regulares de satélites
Configure o monitoramento de API através do Postman:
-
Schedule → A cada 2 horas
-
Testes:
-
Notificações no Slack/e-mail em caso de falha
Questionário para fixação
🚀 Resumo do capítulo: Postman — seu "console de controle" universal para testar APIs. Com ele você irá: - Verificar o funcionamento dos "sistemas de bordo" antes do lançamento - Criar uma biblioteca de cenários de teste - Automatizar o monitoramento de serviços espaciais
📌 Tarefa prática:
- Instale o Postman
- Crie uma requisição para a API da SpaceX:
GET https://api.spacexdata.com/v4/launches/latest
- Escreva um teste que verifique que:
- O status da resposta é
200
- O campo
name
contém a palavra "Falcon"- O tempo de resposta é < 500 ms
Parabéns pela conclusão do Capítulo 1!
Você dominou os fundamentos do trabalho com APIs. Nos próximos capítulos, construiremos nossa própria "nave espacial" — uma aplicação web que usa APIs espaciais!
🌌 Recursos adicionais: