O que saber para testes de API?
Como Analistas de Qualidade, nosso trabalho vai muito além da interface do usuário. Entender e testar as APIs (Application Programming Interfaces) é fundamental, pois elas são a espinha dorsal da comunicação entre diferentes sistemas. Testar APIs nos permite garantir que nossos sistemas não só funcionem, mas que também se comuniquem de forma robusta e segura.
Aqui estão algumas dicas essenciais para você começar a explorar o mundo dos testes de API:
Dicas Essenciais para Testes de API
-
🚦 1. Códigos de Resposta (Status Codes):
-
Sempre valide os códigos de resposta das requisições (ex:
200 OK,201 Created,400 Bad Request,404 Not Found,500 Internal Server Error). -
As APIs nunca devem retornar
500 (Internal Server Error)para chamadas malformadas ou fora do padrão. Deve haver um código de resposta tratado (ex:400 Bad Request,404 Not Found) explicando claramente o motivo pelo qual a requisição não foi completada.
📝 2. Validação de Contrato da API:
-
Realize o teste de contrato da API. A API deve validar rigorosamente os tipos de dados e formatos dos campos passados no body da requisição.
-
Exemplos: Um campo para "data de nascimento" não deve aceitar letras; um campo para "UF" não deve aceitar números.
✅ 3. Obrigatoriedade dos Campos:
-
Verifique a obrigatoriedade dos campos. Se um campo for obrigatório, a API não deve permitir que ele seja enviado em branco ou nulo, retornando uma mensagem tratada informando sobre a ausência ou invalidade do valor.
🚫 4. Tratamento de Registros Inexistentes:
-
Tente excluir, atualizar ou consultar registros que não existem no banco de dados. A API deve retornar uma mensagem tratada indicando que o registro não foi localizado (ex:
404 Not Found).
⏱️ 5. Comportamento em Tentativas Sucessivas (Rate Limiting/Flood):
-
Realize tentativas sucessivas de chamada no mesmo endpoint com intervalos curtos entre as requisições. Observe o comportamento da API para identificar se há mecanismos de rate limiting ou throttling e como ela lida com esse tipo de "inundação" de requisições.
🔑 6. Autenticação e Autorização:
-
Teste a API com diferentes níveis de permissão de usuário (admin, usuário comum, sem autenticação).
-
Verifique se usuários não autorizados conseguem acessar recursos restritos.
🛡️ 7. Injeção de Dados (Data Injection):
-
Tente enviar dados maliciosos ou inesperados nos parâmetros da requisição (ex: código SQL em campos de texto, scripts em campos de entrada) para verificar a robustez da API contra ataques comuns.
📊 8. Performance e Estresse:
-
Use ferramentas para simular um grande volume de usuários ou requisições simultâneas para avaliar a performance da API sob carga. Verifique tempos de resposta e se ela se mantém estável.
📄 9. Paginação e Filtros:
-
Se a API tiver recursos de paginação, teste os parâmetros de limite, offset e número da página.
-
Verifique se os filtros retornam os dados esperados e se a combinação de múltiplos filtros funciona corretamente.
🔄 10. Consistência dos Dados:
-
Realize operações de criação, leitura, atualização e exclusão (CRUD) e verifique se os dados estão consistentes no banco de dados e são retornados corretamente em outras chamadas.
⬆️ 11. Versionamento da API:
-
Se a API possuir versionamento (ex:
/v1/,/v2/), teste se as versões antigas ainda funcionam conforme o esperado e se novas versões introduzem as mudanças corretas sem quebrar a compatibilidade (se for o caso).
Resumo Visual: Pontos Chave em Testes de API
-
🚥 Status Codes: Respostas claras e corretas.
-
✍️ Contrato: Dados válidos e formatos esperados.
-
☑️ Obrigatoriedade: Campos essenciais preenchidos.
-
👻 Inexistentes: Tratamento adequado para dados não encontrados.
-
💨 Performance: Respostas rápidas e sem falhas sob carga.
-
🔐 Segurança: Autenticação e autorização robustas.
-
💉 Proteção: Resistência contra injeção de dados.
-
📏 Limites: Paginação e filtros funcionando.
-
✨ Consistência: Dados sempre corretos.
-
🗓️ Versão: Compatibilidade entre versões da API.
-