Desmistificando os testes de API - Blog 4ALL Tests
Carregando:

Desmistificando os testes de API

Desmistificando os testes de API

Desmistificando os testes de API

Para entrar no mundo das APIs e dos microsserviços tive que estudar, ler e executar muita coisa pra poder entender um pouquinho só. É muito difĩcil entrar nessa brincadeira, mas também depois que entra você vê o quanto é simples.

Para ser simples de verdade, resolvi escrever este artigo tentando facilitar o entendimento para quem nunca ouviu falar ou para quem estiver iniciando nos testes de API. Então bora lá:



Você sabia que toda vez que coloca uma URL no navegador e aperta enter, quer dizer que você fez uma requisição(GET)?



Antes de começar tudo, vamos fazer uma brincadeira:

  • Abra seu navegador preferido para testes (o meu, firefox)

  • Clique com o botão direito dentro dele

  • Selecione a opção inspecionar

  • Clique naquele menu ali: Network

Top, cê é fera, segue certim!

  • Beleza, agora entra em um site qualquer ai (eu: www.4alltests.com.br)

  • Pronto: agora ele mostra, nesse Network a lista de todas as requisições que o site faz

(no meu caso o firefox mostrou os status code de cada requisição na primeira coluna, o tipo de requisição na 2a coluna e a url na terceira coluna).


Massa né?


Tá, mas o que isso significa João?


Que você fez seu primeiro teste de requisições HTTP




Tá, mas peraí, que por*$# é essa de HTTP e o que isso tem a ver com o artigo carai…

HTTP é um protocolo (protocol) que permite a obtenção de recursos, tais como documentos HTML. É a base de qualquer troca de dados na Web e um protocolo cliente-servidor, o que significa que as requisições são iniciadas pelo destinatário, geralmente um navegador da Web. Um documento completo é reconstruído a partir dos diferentes sub-documentos obtidos, como por exemplo texto, descrição do layout, imagens, vídeos, scripts e muito mais.

Clientes e servidores se comunicam trocando mensagens individuais (em oposição a um fluxo de dados). As mensagens enviadas pelo cliente, geralmente um navegador da Web, são chamadas de solicitações (requests), ou também requisições, e as mensagens enviadas pelo servidor como resposta são chamadas de respostas (responses).





Bom, vamos aos BlaBlaBlas.


1- O que é uma API?


Interface de Programação de Aplicações (pt) ou Interface de Programação de Aplicação (pt-BR), cujo acrônimo API provém do Inglês Application Programming Interface, é um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.[1]

Wikipédia.


Bom não vou forçar a escrita e te explicar mais do que isso para você entender o que é uma APl, mas te trago 2 lindos artigos que são uma obra prima da atualidade.

Gosto dessa definição escrita no artigo:
A API é o livro de regras, que estabelece os padrões de comunicação que poderão ser usados naquela interação.

E também:

APIs permitem comunicação entre máquinas diversas.


Não deixe de ler estes 2 posts sobre O Que é uma API
Parte 1- https://sensedia.com/api/o-que-sao-apis-parte-1-introducao/
Parte 2- https://sensedia.com/api/o-que-sao-apis-parte-2-como-uma-api-funciona/

Estes são os dois posts mais esclarescedores.


2- E o que é um microsserviço?



Microsserviços são uma abordagem de arquitetura para a criação de aplicações. O que diferencia a arquitetura de microsserviços das abordagens monolíticas tradicionais é como ela decompõe a aplicação por funções básicas. Cada função é denominada um serviço e pode ser criada e implantada de maneira independente. Isso significa que cada serviço individual pode funcionar ou falhar sem comprometer os demais. [Redhat]


3- O que eu posso Testar nas APIs?

Funcionalmente as APIs tem vários objetivos:

  • Enviar dados

  • Buscar dados

  • Alterar dados

  • Excluir dados

Entre outros.

E além das funções acima, as APIs tem um conjunto de informações que validam estas ações, por exemplo: o cabeçalho e o corpo de envio e recebimentos, bem como os status válidos. Desta forma, testando:

  • Header

  • Body

  • Status code


De forma não funcional, você precisa validar o desempenho(performance), a segurança e a operacionalidade.
Vale destacar que API não entra na característica de qualidade chamada USABILIDADE, para se integrar APIs ou utilizar seus recursos a característica de qualidade mais viável de realização de testes é a OPERACIONALIDADE, onde em um documento é mostrado como utilizar a API, pois, o que adianta ter um lindo serviço se o usuário não consegue utilizá-lo.


Abaixo você encontra as características de qualidade que devem ser buscadas ao desenvolver uma API.



4- Como eu posso Testar APIs?


Para realizar testes de API, você pode executar tanto manualmente, quanto através de automação. Em todos os casos, você necessitará utilizar alguma ferramenta.



5- E ferramentas de Testes para APIs?


Para testes manuais:

  • Ferramenta de Teste de API 4ALL Tests

  • Qualquer navegador

  • POSTMAN

  • INSONIA


Para automatizar os testes:

  • HTTParty

  • Katalon

  • Rest Assured

  • Karate DSL

  • RUNSCOPE

  • JMETER

  • GATLING

Entre outras, citadas no levantamento de ferramentas feito no portal 4ALL Tests.

Vale a pena destacar também que todas as ferramentas acima de automação, nelas você também consegue realizar os testes de forma manual.




Quais características da qualidade de software podem ser exercitadas ao testarmos APIs?


Funcionalidade: A capacidade de um software prover funcionalidades que satisfaçam o usuário em suas necessidades declaradas e implícitas, dentro de um determinado contexto de uso.
Exemplo de Teste: Validar o cadastro de pessoas em uma tabela de usuário (POST), Validar se o Cadastro foi efetuado (GET).


Performance: O tempo de execução e os recursos envolvidos são compatíveis com o nível de desempenho do software.
Exemplo de Teste: Validar uma carga de 1.000 requisições ao preço de um produto ao mesmo tempo (GET).


Manutenibilidade: A capacidade (ou facilidade) do produto de software ser modificado, incluindo tanto as melhorias ou extensões de funcionalidade quanto as

correções de defeitos, falhas ou erros.

Exemplo de Teste: Verificar se uma api recebe um tipo de campo que foi passado por outra(Teste de Contrato).


Segurança: Capacidade do produto de software de apresentar níveis aceitáveis de riscos de danos a pessoas, negócios, software, propriedades ou ao ambiente, em um contexto de uso especificado.

Exemplo de Teste: Validar se é possível requisitar informações sem passar os headers que necessitam de autenticação(GET).


Operacionalidade: Capacidade do produto de software de possibilitar ao usuário operá-lo e controlá-lo.

Exemplos de Teste: Verificar se a documentação oferecida ao cliente é realmente simples de ser utilizada. Verificar se o cliente consegue utilizar a API fora do ambiente que foi desenvolvido.




Que bom que chegou até aqui. Isso quer dizer que você leu e gostou do artigo, ou não rsrsrs.
Se curtiu, compartilha ai pra gente pra dar aquela forcinha (like a youtuber).

Fique agora com alguns links sugeridos para complementar seu estudo.


Sites com APIs fake para testes:

- https://jsonplaceholder.typicode.com
- https://reqres.in/

Links:

Rest Assured Tutorial - Learn API Testing Step by Step: https://www.swtestacademy.com/rest-assured-tutorial-api-testing/
Test a REST API with Java | Baeldung
https://www.baeldung.com/integration-testing-a-rest-api
Postman - Documenting your API
https://learning.getpostman.com/docs/postman/api-documentation/documenting-your-api/
REST API Testing with Karate | Baeldung
https://www.baeldung.com/karate-rest-api-testing
O que são webhooks e como usar um agora mesmo
https://pluga.co/blog/api/webhook/
Testando API com HTTPARTY
https://medium.com/@pedrohenriquemartins_43091/testando-api-com-httparty-65ae8fe9e2c5

Automação de Testes API com HTTParty e Cucumber (BDD)

https://medium.com/@rafaelberam/automa%C3%A7%C3%A3o-de-testes-api-com-httparty-e-cucumber-bdd-d955749affa8
Realização de testes em API REST - Sensedia

https://sensedia.com/apis/realizacao-de-testes-em-api-rest/
Realizando um teste de API com JMeter: do Teste ao Relatório
https://take.net/blog/take-test/teste-de-api-com-jmeter/

Top 10 de Ferramentas de Teste de APIs para 2018

https://medium.com/@orelgreen2017/top-10-de-ferramentas-de-teste-de-apis-para-2018-acf0734c048c

Como customizar o response da API Rest do WordPress com informações específicas? | Matera

http://www.matera.com/blog/post/como-customizar-o-response-da-api-rest-do-wordpress

Protocolo HTTP

https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Overview







Compartilhe :
   
Tags :
API  

João Júnior

QA, Gestor de Projetos, inovador, criador do 4ALL Tests, COPA TI e organizador de vários eventos na área de Tecnologia.