APIs
15
min de leitura
28 de janeiro de 2019

API REST: entenda o passo a passo para realizar testes

Renan Petronilho
Especialista em desenvolvimento e integrações em software , com mais de 8 anos de experiência.
Mais sobre o autor

Hoje estamos na onda dos microsserviços e com o surgimento dessa nova arquitetura, os serviços monolíticos estão sendo abandonados. Porém com tantos serviços desse tipo, surge uma questão preocupante: os testes. Como realizar testes unitários de um recurso presente em uma API REST? Como realizar testes de integração dos microsserviços? Essas são algumas dúvidas que surgem no dia a dia e tornam a construção dos testes algo desafiador para o desenvolvedor. Então, com o objetivo de ajudá-los, vou compartilhar alguns frameworks, ferramentas e dicas de como realizar tais testes.

Que testes devo realizar em um REST API?

Quando estamos criando nosso cenário de teste para API, devemos conhecer plenamente o contrato dela, uma API documentada com Swagger ajuda muito nessas horas, pois através dele saberemos os recursos, corpo de mensagem, etc.

Dados de uma requisição:

  • Método
  • URI
  • Headers
  • Query Parameters
  • Body

Dados para uma resposta:

  • Headers
  • Body
  • Status code

Comportamento de solicitação:

  • Validação dos dados de retorno.
  • Validar os headers da resposta
  • Validar se a resposta está de acordo.
  • Validar se o content-type alterado, o comportamento continua o mesmo.
  • Validar se a estrutura do JSON ou XML está correta.
  • Validar se quando der erro o status está de acordo com os códigos de erro.
  • Validar se uma requisição com informações incompleta, qual será o comportamento da requisição.

Após a coleta desses dados, já temos um cenário e saberemos quais comportamentos são esperados em nossa API.

Ferramentas de teste REST API

Após o levantamento dos principais pontos a serem testados em uma API, é necessário escolher a ferramenta para realização dos testes. Atualmente o mercado disponibiliza uma variedade de ferramentas, mas deve-se escolher a que melhor atenda o cenário do seu projeto.

Como exemplo, podemos citar:

Neste artigo vamos usar Postman para criar os testes e Newman para executar os testes automaticamente, de modo que será possível criar um cenário muito interessante para testar.

Postman/Newman

Postman é um REST Client muito popular entre os desenvolvedores que precisam fazer um pedido HTTP, o que ajuda a validar os testes realizados. Temos também o Newman que executa coleções do Postman por linha de comando, o que facilita o uso de softwares de integração contínua auxiliando a validação de uma API após a geração de um build.

Cenário de Teste API Rest

Para mostrar como é fácil a utilização do Postman iremos construir um passo a passo para testar uma API. Essa API é muito simples ela é um CRUD de Tarefas, onde teremos os seguintes recursos.

Testes em API REST

Nosso plano será o seguinte.

Regra Resultado esperado

PÓS/tarefas com valores em falta retornam status de solicitação inválida HTTP Status 400

POST / tarefas ao executar status de criação de retorno e com localização no cabeçalho HTTP Status 201, Localização sem cabeçalho

GET /tarefas ao executar o retorno ok status HTTP Status 200

GET /tasks/{taskid} com objeto de tarefa de retorno válido e status ok Objeto de tarefa e HTTP status 200

GET /tasks{taskid} with invalid id return status of not found HTTP Status 404

DELETE /tarefas/{tarefa} com status válido de retorno de id sem conteúdo HTTP Status 204

Postman

Após o término da construção do cenário de teste, podemos começar a usar Postman para criar os cenários de teste. Para começar, temos duas opções: importar Swagger ou criar uma nova coleção.

Como fazer Testes em API REST

Importação Swagger

Realização de testes em API REST

Criar uma nova coleção

Para gerar coleções de requisições de teste no Postman podemos importar um documento Swagger ou então, gerar uma nova coleção através da própria ferramenta. A importação trará todas as requisições descritas no Swagger, enquanto a criação de uma coleção gerará requisições vazias, sendo necessário que o desenvolvedor descreverá os itens da coleção.

Como realizar testes em API REST

Coleção criada com as solicitações que testaremos

Com Postman temos a possibilidade de trabalhar com vários ambientes, tais como Produção ou Sandbox. Em cada um deles, podemos colocar variáveis para ajudar nos testes. Um bom exemplo é a inserção do endpoint da API.

Dicas para realização de testes em APIs

Configuração do Environment.

Para criar os testes, selecione o método HTTP (POST, GET, PUT, DELETE, etc) e digite a URL de solicitação, observe que a URL {{{{uri_task_api}}} é uma variável de ambiente, para que possamos testar vários ambientes.

Como devo realizar testes em API rest

Adicione os Headers necessários, nesse caso temos que passar o Header “Content-Type” para especificar que vamos passar um JSON, mas poderíamos passar um Header diferente para testar se API está tratando corretamente o erro “media type”.

testículos em API rest

Quando estamos realizando uma operação de inclusão ou edição de dados, devemos preencher o body, esse é um exemplo de um body utilizando JSON. Além de JSON, podemos usar XML, texto, form-data, x-www-form-urlencoded ou arquivos binários.

Testes em API rest como realizar

Na aba “Pre-request Script” é possível executar scripts antes de realizar um requisição, nessa imagem estamos criando uma variável “createdAt” com a data atual, e adicionando ela em um ambiente, assim podemos utilizar esse valor em qualquer lugar na requisição.

realizar testes em API rest

Na aba “Tests” é onde devemos criar os scripts para validar o cenário de teste, como validar se um status code está de acordo com previsto, se o Header “location” está presente, entre outras possibilidades. Além disso podemos recuperar valores para ser utilizados futuramente, ou seja conseguimos realizar vários scripts, vai depender da sua necessidade.

testículos api rest

Executando os testes

Após a criação de todos os cenários, temos a possibilidade de executar o teste individualmente ou para toda a coleção. No teste de unidade, basta clicar no botão a seguir:

teste em api rest

Este botão ativará seu pedido e validará seus testes, e o informará quais testes foram aprovados ou reprovados.

testes em api rest, aprenda como fazer

Para executar a coleção vá no menu “Runner” Elá vai abrir um Janela, onde você deve selecionar a coleção e o “Environment”. Após isso basta clicar no botão

teste api rest

Ele vai disparar todas requisições programadas na sua coleção, e vai informar quais foram os testes que passou ou falhou.

testes em api rest como fazer o seu

Newman

Como mencionado acima, temos o Newman que executa suas coleções do Postman, porém por linha de comando, isso é muito útil quando você quer deixar os seus testes como um passo da sua build. Para usá-lo basta exportar do Postman a coleção e o ambiente desejado.

teste api rest

Exportar coleção.

teste em api rest

Exportar Ambiente.

Para executar na linha de comando basta digitar a seguinte expressão:

newman run tasks-api.postman_collection.json --environment task-
ambientes.postman_environment.json

Depois de executar ele vai exibir os resultados, com os testes executados e mostrar qual teste passou e qual falhou.

importancia de realização de teste em api rest

Bom essa é umas das formas que você pode utilizar para testar sua API, claro que existem várias ferramentas e métodos, basta você entender qual será a melhor para o seu contexto, e nunca deixar suas APIs sem testes.

GITHUB: https://github.com/renanpetronilho/task-api

Nossa Plataforma de API Management é um hub completo. Com a Sensedia, grandes empresas escalam suas operações com APIs, com ambientes de testes, adaptive governance, api security e muito mais

Publicado originalmente em julho de 2017, com pequenas atualizações em 2019.

Obrigado pela leitura!