O teste de carga é uma parte crucial de qualquer aplicativo de software ou processo de desenvolvimento de API REST. Ele ajuda você a entender a funcionalidade de um programa específico para garantir que ele funciona bem quando ele finalmente encontra usuários reais. Esses testes permitem que desenvolvedores e empresas identifiquem quaisquer gargalos. Além disso, economiza tempo e garante que os recursos monetários sejam extra utilizados mais tarde (especialmente usando ferramentas de teste de carga como o Selenium). Da mesma forma, o teste de API (Application Programming Interface) é um tipo de teste de software que determina se um aplicativo recém-desenvolvido atende às expectativas, em termos de confiabilidade, desempenho, operações e segurança.

No entanto, ao se concentrar na API REST (um tipo de API), isso permite que dois ou mais sistemas se comuniquem através do HTTP, que é bastante semelhante aos navegadores e servidores da Web, para analisar o tempo de resposta a cada solicitação feita por um usuário. Então, se você quiser saber mais sobre os testes de automação de API REST com a ajuda de um pequeno tutorial, mergulhe! Mas antes de pular no tutorial, é extremamente importante entender o que é a API, REST, API REST e testes de automação. Então, vamos cobri-los brevemente um por um.

O que é uma API?

Quer saber o que é uma API? Bem, simplificando, e a API é um conjunto de regras que ajudam programas a se comunicarem uns com os outros. Os desenvolvedores criam APIs nos servidores, que permitem que os clientes conversem com eles. Quer um consumidor típico saiba ou não, as APIs são utilizadas nos serviços e aplicativos que eles usuários todos os dias. Desde ver uma previsão do tempo e fazer login em suas contas sociais até pagar por um item através de PayPal, as APIs estão nos bastidores, trabalhando para fornecer uma experiência mais personalizada, conectada e segura.

Devido a esse fato, é vital que as APIs sejam exaustivamente testadas, pois desempenham um papel significativo no desenvolvimento com outras aplicações e integrações e a experiência de um usuário. Seu desempenho pode fazer ou quebrar uma oportunidade.

O que é REST?

REST significa Transferência de Estado Representacional. É um estilo arquitetônico de software que possui regras (restrições), que são necessárias para serem seguidas pelos desenvolvedores. No entanto, uma das restrições mais vitais é que o aplicativo web deve ser capaz de fornecer os dados (informações) sempre que um comando é dado.

O que é uma API REST?

Todas as informações acima nos trazem muito bem para a API REST. Vamos entender melhor este termo através de alguns exemplos.

Imagine que você está tentando encontrar uma companhia aérea que ofereça passagens baratas. Você digita seu pedido no mecanismo de busca, e você recebe uma lista completa de empresas. Da mesma forma, quando você está tentando procurar vídeos no YouTube, você simplesmente digita a palavra-chave ou nome no campo de pesquisa e acerta enter. A próxima coisa que você vê é uma longa lista de vídeos relacionados.

Mais do que isso, quando você abre o Google maps e procura um lugar específico que deseja visitar, você também pode ver as comodidades próximas, como restaurantes e opções de deslocamento. Isso acontece porque as empresas expuseram suas APIs, e a API REST funciona quase de forma semelhante. Você prefere solicitar alguns dados usando HTTP (ou em palavras simples, a Internet), e você recebe informações ou resultados das empresas que você está solicitando.

Apesar da API REST desempenhar um papel importante em quase todas as esferas, a indústria de comércio eletrônico tem usado essa tecnologia amplamente, pois está ajudando as empresas lidando com comandos (solicitações) de vários usuários e retornando formatos de dados distintos. Então, em suma, de grandes grupos de negócios a indivíduos normais, ele está servindo toda a hipermídia que inclui até mesmo alguém que está apenas tentando carregar uma imagem, editar as informações do perfil ou simplesmente baixar um arquivo.

Realizando testes de API REST

Existem duas maneiras de testar a API REST:

  1. Teste manual
  2. Testes de automação

No entanto, este tutorial é para testes de automação. Além disso, há coisas importantes a entender para interpretar os resultados, incluindo métodos e código de status.

Métodos HTTP para testes de automação de API REST

A API REST usa cinco métodos HTTP para solicitar um comando:

GET: Para recuperar as informações em uma URL específica.

PUT: Para atualizar o recurso anterior ou criar novas informações em uma URL específica.

PATCH: Para atualizações parciais.

POST: É usado para desenvolver uma nova entidade. Além disso, ele também é usado para enviar informações para servidores, como upload de um arquivo, informações do cliente, etc.

EXCLUIR: Excluir todas as representações atuais em uma URL específica.

Códigos de status HTTP

Códigos de status são a resposta dada por um servidor à solicitação de um cliente. Eles são classificados em cinco categorias:

  1. 1xx (100 – 199): A resposta é informacional
  2. 2xx (200 – 299): Garante uma resposta bem sucedida
  3. 3xx (300 – 399): Você é obrigado a tomar mais medidas para atender ao pedido
  4. 4xx (400 – 499): Há uma sintaxe ruim e a solicitação não pode ser concluída
  5. 5xx (500 – 599): O servidor não completa totalmente a solicitação

Esses códigos ajudam a interpretar os resultados. Assim, se os resultados dos testes de automação de API REST estiverem entre as faixas 2xx, isso significa que as funções do aplicativo estão funcionando idealmente. Para a maioria dos usuários normais e cotidianos da Internet, os códigos de status nunca serão algo que eles vão encontrar ou ir à procura. Para códigos de status 1xx, 2xx e 3xx, estes realmente não são considerados erros, uma mensagem bastante informativa e não necessariamente afetarão a experiência do usuário.

No entanto, quando começamos a entrar nos códigos de status 4xx e 5xx, essas são consideradas mensagens de erro e quando algo dá errado, os usuários serão confrontados com mensagens de erro enquanto navegam através de APIs. As mensagens de erro de código de status 4xx geralmente ocorrem quando algo acontece no nível cliente/navegador. As mensagens de erro de código de status de 5xx resultam em erros no nível do servidor. Embora nunca seja bom ver erros, estes são especialmente importantes para remediar o mais rápido possível, pois indicam problemas sérios e afetarão muito a satisfação do usuário.

Para obter mais informações sobre códigos de status HTTP, juntamente com uma lista abrangente de todos os códigos e mensagens de erro diferentes, leia nosso artigo da Lista de Códigos de Status HTTP em nossa Base de Conhecimento.

Tutoria tutorial de teste de API REST com ferramenta de teste de API de carteiro

O tutorial a seguir é para testes de automação de API REST usando Carteiro. O Carteiro é um cliente popular de API que permite que desenvolvedores e equipes testem, compartilhem, criem, colaborem e documentem o processo de desenvolvimento da API. O cliente é ideal para criar e salvar o complexo, bem como solicitações simples de HTTP/s, juntamente com suas respostas. O carteiro pode ser baixado como uma extensão do Chrome,ou você pode visitar o site oficial para baixar o programa.

Cenário do teste: Código de status semanal

Este é um cenário de teste de automação de API REST de amostra para testar todos os cinco métodos no Status Code Weekly para encontrar o código de status do site. Vamos começar!

Teste GET Solicitação

Nota: Depois de clicar neste link (https://reqres.in/api/users?page=2) você veria o código JSON.

Mas a melhor coisa sobre o Carteiro é que se você tiver a URL da API, você pode simplesmente colá-la para obter o código de status, e a mesma regra se aplica a todos os outros métodos.

Tutorial de teste: Depois de lançar o Carteiro, selecione o método GET e copie o link de solicitação GET (https://reqres.in/api/users?page=2) e cole-o no campo ‘Enter request URL’. Uma vez feito, clique em ‘Enviar’ para ver o ‘Status’.

Resultados: Você pode ver que o status é ‘200 OK’.

Interface carteiro

Interpretação: ‘OK’ significa que a solicitação GET está funcionando sem erros, pois o código de status é exatamente 200.

Teste de solicitação POST

Passo 1: Clique em ‘Nova guia’ e selecione ‘POST’ no menu suspenso.

Tela de solicitação de correio dos carteiros

Passo 2: Copie e cole a URL de solicitação POST (https://reqres.in/api/users)no campo ‘Enter Request URL’ e aperte o botão ‘Enviar’.

Resultados: O código de status é ‘200 Criado’.

Código de status POST Solicitação 201

Interpretação: ‘Criado’ significa que a solicitação POST foi bem sucedida, e um novo recurso foi gerado.

Teste put solicitação

Passo 1: Abra ‘Nova guia’ e escolha ‘PUT’ das opções.

Postman PUT Request Screen

Passo 2: Copie e cole a URL de solicitação PUT (https://reqres.in/api/users/2) no campo ‘Enter Request URL’ e clique em ‘Enviar’.

Resultados: O status é ‘200 OK’.

Código de status PUT Solicitação 200

Interpretação: A solicitação PUT está funcionando.

Teste solicitação patch

Passo 1: Selecione ‘PATCH’ na ‘Nova guia’.

Tela de solicitação patch do carteiro

Passo 2: Cole a URL de solicitação PATCH no campo e clique em ‘Enviar’.

Resultados: O código de status é ‘200 OK’.

Solicitação patch do código de status 200

Interpretação: A solicitação PATCH está funcionando corretamente.

Teste solicitação de EXCLUS

Passo 1: Crie uma ‘Nova guia’ e desta vez selecione ‘EXCLUIR’ do menu.

Tela de solicitação de exclusão do carteiro

Passo 2: Digite a URL de solicitação DE EXCLUS no campo e clique novamente no botão ‘Enviar’.

Resultado: Você pode ver que o Status é ‘204 No Content’.

Interface carteiro

Interpretação: Como o link não tem conteúdo a ser excluído, portanto, recebemos uma resposta ‘204’. No entanto, se houvesse algum conteúdo na URL, ele certamente seria excluído com este comando, pois o código de status está na faixa típica.

Tutorial de teste de API REST usando REST Assured

REST Assured é uma biblioteca Java para testar APIs RESTful. É amplamente usado para testar aplicações web baseadas em JSON e XML. Além disso, ele suporta totalmente todos os métodos, incluindo o GET, PUT, POST, PATCH e DELETE.

Ainda assim, você é obrigado a ter Java, Maven, TestNG e IDE (IntelliJ, Eclipse, etc.) já instalados em seu sistema para executar o teste.

Passo 1: Instalar Java

Passo 2: Baixe um IDE (Eclipse)

Passo 3: Instale Maven e conecte-o com o Eclipse

Passo 4: Crie um projeto Maven primeiro adicionando dependências a ‘pom.xml’. Depois disso, crie o script de teste, certifique-se de verificar e, em seguida, executá-lo.

Dependência maven segura

Dependência maven

Dependência de Maven TestNG

TestNG de dependência maven

Supondo que você tenha instalado todas as ferramentas, deixe-nos testar o mesmo GET Request, você já viu no Carteiro, no Eclipse usando REST Assured para descobrir os resultados. Se você quiser, você pode aplicar o mesmo método para testar outras solicitações.

Então, siga estas etapas para obter solicitação:

Passo 1: Abra ‘Eclipse’.

Passo 2: Crie um novo ‘Pacote Java’ e nomeie-o.

Passo 3: Crie uma nova ‘Classe Java’ e nomeie-a. Por exemplo, “Obter dados”.

Passo 4: Agora copie ou escreva o mesmo código mencionado abaixo:

1 package getRequest;

2

3 import org.testing.Assert;

4

5 import io.restassured.RestAssured;

6 import io.restassured.response.Response;

7 

8 public class GetData

9 {

10

11 @Test

12 public void testResponsecode()

13 {

14

15 

16 Response resp=RestAssured.get("https://reqres.in/api/users?page=2");

17

18 int code=resp.getStatusCode();

19 

20 System.out.printin(" Status code is "+code);

21

22 Assert.assertEquals(code, 200);

23

24 }

25

26

27 }

28

Deve ser assim:

GetData Java

Passo 5: Agora, clique com o botão direito do mouse perto do código, passe o mouse em ‘Run As’e clique em ‘TestNG’.

Executar como > TestNG

Resultado e Interpretação: Como você pode ver, o código de status é 200 e tem ‘Passado’ o teste.

TestNG passado

Conclusão: Rest API Automation Testing Tutorial

As APIs REST permitem que dois ou mais aplicativos se comuniquem entre si, além de permitir que os usuários comandem programas para obter os resultados desejados. Existem diferentes maneiras de testar APIs REST, mas o processo mais sugerido é através de testes de automação. E embora existam algumas ferramentas famosas de teste de API REST, Carteiro e Rest Assured estão atualmente sob os holofotes. Neste tutorial, testamos algumas solicitações em ambas as interfaces e compartilhamos os resultados. Como esperado, ambas as plataformas mostraram resultados semelhantes. No entanto, o uso do REST Assured para testes de automação de API REST é mais confiável em comparação com o Carteiro. Mas exige desenvolvedores profissionais.

E por mais ótimo que essas ferramentas de desenvolvimento de API sejam, para carregar corretamente suas APIs, você precisa de uma solução que ofereça a funcionalidade e recursos para dimensionar testes de desempenho. Se você estiver usando o Carteiro para a funcionalidade de API e procurando executar testes de carga contra suas APIs para determinar o comportamento sob carga, a plataforma LoadView pode ajudar. Saiba mais sobre testes de API com Carteiro. E se você está curioso para saber mais, não hesite em entrar em contato com nossa equipe.

Inicie o teste LoadView e obtenha US$ 20 em créditos de teste de carga.