- Qualidade e Testes
Testes de API permitem identificar e corrigir erros antes que eles causem problemas. E é aí que consideramos o REST Assured uma ferramenta poderosa para a realização de testes automatizados em APIs REST.
Essa é uma excelente medida para garantir a qualidade de software, além de enriquecer a sua automação de testes por meio de experimentos mais fáceis e eficientes de serem executados.
Por isso, convidamos você a descobrir como essa ferramenta pode facilitar o processo de teste, aumentar a eficiência da sua equipe de desenvolvimento e, consequentemente, melhorar a qualidade das suas soluções!
REST Assured é uma biblioteca Java projetada para simplificar a automação de testes de APIs REST. Desenvolvida com foco na usabilidade e eficiência, a solução digital facilita o trabalho do desenvolvedor ao criar, executar e manter testes de API de maneira intuitiva e produtiva.
Em parte, isso se deve à sua estrutura, que segue o paradigma de Desenvolvimento Guiado por Comportamento (ou BDD — Behavior Driven Development) a partir de uma sintaxe clara, composta pelos comandos given, when e then.
Portanto, essa abordagem facilita a leitura e compreensão dos testes, tornando-os acessíveis tanto para Desenvolvedores, Analistas de Qualidade e outros membros da equipe como Team Managers.
Com o REST Assured, você terá um grande auxílio em testes automatizados de APIs REST. Mas, para isso, é necessária a inclusão das dependências da biblioteca no seu projeto, bem como a configuração inicial para garantir que tudo funcione corretamente. Vamos explorar essas etapas a seguir.
Leia também: Estratégias de testes de APIs
Veja, a seguir, quais são as principais configurações iniciais:
Para adicionar o REST Assured ao seu projeto, você pode utilizar ferramentas de gerenciamento de dependências como o Maven, que simplificam o processo de incluir bibliotecas externas e garantem que todas as dependências necessárias sejam resolvidas automaticamente.
Para adicionar o REST Assured ao projeto, abra o arquivo pom.xml do seu projeto e insira-o dentro da tag <dependencies>, conforme a imagem abaixo para que o Maven baixe e inclua a ferramenta automaticamente.
Em seguida, crie a estrutura dos pacotes de teste. Por aqui, quando estamos aprendendo, geralmente configuramos a URL base e passamos o payload dentro da mesma classe.
Abaixo, o exemplo demonstra uma estrutura em que dados, testes e utilidades estão em pacotes separados, o que torna-os mais visíveis e organizados.
Dessa maneira, ao começarmos a digitar os códigos do REST Assured, automaticamente a IDE irá sugerir os imports. Mas por meio da documentação dessa biblioteca, já surgem recomendações para fazer as importações estáticas e manter um uso mais efetivo.
Por fim, vamos criar a classe de configuração da URL base. Para isso, podemos configurar a porta em que a API está rodando e o caminho base da API a partir dessa classe, que será posteriormente estendida para as classes de teste.
Com isso, é necessário informar apenas o endpoint em cada método de teste, uma vez que o caminho base já foi definido.
Veja, também, o exemplo de estrutura base para os métodos de testes:
Esse exemplo demonstra como configurar o REST Assured para realizar um teste simples de verificação de código de status. E, assim, você pode expandir esses testes para incluir verificações mais complexas conforme necessário.
Nas imagens abaixo, vamos fazer uma requisição em que o payload é enviado através do body ao fazer o post. Assim, o token será extraído e armazenado na variável tokenAdm.
Nesse método, nenhum teste está sendo efetuado: apenas a extração do token para posterior utilização.
Agora, o primeiro teste: no given(), passamos o token extraído anteriormente para obter autorização de cadastro e o payload está sendo passado diretamente no body.
No when, estamos apenas chamando o endpoint a ser testado porque a classe que contém o caminho base foi estendida.
Por fim, no then(). o statusCode() está sendo validado.
Em seguida, os dados passam através de um Map na classe dados para posterior substituição do payload na classe de testes:
Na imagem abaixo, apenas vamos efetuar o mesmo teste do segundo passo de nosso exemplo. A diferença é que vamos receber no body o payload da classe Dados:
Já na ilustração abaixo, queremos validar a chamada para um método GET. Além do statusCode(), está sendo verificado se o retorno da resposta contém os valores informados através do método containsString().
Veja, abaixo, nossas recomendações para que seus testes de API sejam bem-sucedidos:
Também selecionamos algumas orientações práticas para organizar e estruturar testes de API de maneira eficiente:
Para a manutenção dos seus testes com REST Assured, temos mais estratégias para mantê-los atualizados com as mudanças na API, como:
Agora, para identificar e corrigir bugs no software usando o REST Assured, recomendamos que você:
Para conseguir monitorar os logs adequadamente, você deve se lembrar de:
Tanto o REST Assured quanto o Cucumber são frequentemente mencionados devido à sua abordagem BDD.
No entanto, é importante esclarecer que, apesar de suas semelhanças, eles são frameworks distintos.
REST Assured, como vimos, é um framework que integra a sintaxe BDD diretamente em seu código para facilitar a realização de requisições e testes de APIs REST.
Ele utiliza os termos Given, When, Then para estruturar as requisições e validações de forma clara e organizada. Já o Cucumber é um framework que suporta o formato BDD, o que permite uma leitura de código mais eficaz e organizada, pois permite estruturar os testes de acordo com os cenários especificados.
O código é composto por diferentes frameworks, e o REST Assured fornece um modelo para implementação de testes de backend no formato de microsserviços (APIs), o que possibilita fazer chamadas e validações para elas. Por sua vez, o JUnit agrega valor no momento de estruturar os testes e realizar assertivas.
Ou seja: proporciona anotações e métodos de asserção para criar, gerenciar e executar casos de teste (@test é uma anotação que diz para o código que aquele método é um método de teste, por exemplo).
Você pode fazer isso por meio da adição de dependências do REST Assured e do JUnit ao seu projeto — como explicamos anteriormente a partir da utilização do Maven.
Em seguida, defina a URL base da API e outras configurações necessárias antes de executar os testes — e, aí, vale utilizar as anotações do JUnit (@Test) para definir seus métodos de teste e a sintaxe BDD do REST Assured para fazer as requisições e validar as respostas.
O que, consequentemente, vai permitir a automatização de testes de APIs REST de maneira eficiente, garantindo que elas funcionem conforme o esperado.
Testes de API são essenciais para garantir a qualidade e a funcionalidade das suas aplicações. E, com o REST Assured, você pode automatizar esses testes de forma eficiente, além de identificar e corrigir erros antes que eles causem problemas.
Essa é uma prática que melhora a qualidade do software e ainda facilita o trabalho do seu time de desenvolvimento. Se quiser aproveitar ao máximo essas vantagens, conheça os serviços de outsourcing da SoftDesign.
Nossa equipe pode ajudar a implementar soluções muito mais eficientes, que podem elevar o padrão de qualidade das suas entregas, reduzir a quantidade de erros e o tempo necessário para o desenvolvimento de software. Descubra como podemos apoiar os seus produtos digitais com soluções de outsourcing!
Veja, a seguir, as respostas para as principais dúvidas sobre REST Assured.
REST Assured é uma biblioteca Java que facilita a automação de testes de APIs REST, utilizando uma sintaxe BDD para criar e validar requisições e respostas.
Você pode testar APIs com Java utilizando bibliotecas como REST Assured para criar requisições e validar respostas, juntamente com JUnit para estruturar e automatizar os testes.
Para testar uma API REST, configure as dependências no seu projeto, utilize REST Assured para criar requisições e validações e JUnit para estruturar e automatizar os testes.
Quer continuar aprendendo? Veja também: