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
-
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.
-
-
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.
-
-
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.
-
-
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).
-
-
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.
-
-
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.
-
-
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.
-
-
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.
-
-
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.
-
-
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.
-
-
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).
-