Tá na hora de Robotizar a sua API!
Chegou a hora de você automatizar seus testes de API usando Robot Framework. Após ler esse post você terá a certeza de como é simples e eficaz usar esse framework.
Muitos de vocês testadores estão conhecendo agora o Robot Framework, que é uma ferramenta de automação full-stack que não exige prévio conhecimento em linguagens de programação.
A ideia desse framework é utilizar palavras chaves (Keywords), deixando a automação ao alcance de qualquer tester/QA sem complexas técnicas de programação. No Robot você consegue automatizar aplicações web, mobile, APIs e até mesmo desktop. Hoje vamos falar sobre as APIs.
Para utilizar o Robot Framework você precisa ter instalado previamente o Phyton 3 no seu computador, instalar o Robot Framework e para automatizar APIs vamos utilizar a biblioteca Requests, você pode instalar através do seu console:
pip install -U robotframework-requests
Para ler toda a documentação da biblioteca e todas as Keywords que ela disponibiliza você deve (sim deve mesmo heim, não pule essa parte) ler toda a documentação disponibilizada em: https://github.com/MarketSquare/robotframework-requests#readme
Outra biblioteca muito útil para os testes de API é a Collections, essa é uma biblioteca nativa do Robot então não é necessário instalar somente declarar ela na seção Settings do seu teste.
Para acessar a documentação dela só clicar aqui, Robotizador.
Vamos arregaçar as mangas e por as mãos na massa, vamos utilizar a API do Júlio de Lima — API da Lojinha. Aliás se você ainda não entende muita coisa sobre APIs e testes o Julio e o Antônio Montanha fizeram um “Kit de Sobrevivência” onde eles te ensinam o be-a-ba das APIs e que você pode assistir e se deliciar.
A primeira coisa que devemos escrever são nossos testes que virarão KeyWords (palavras chaves que executam alguma ação pré definida) já já. Para não prolongar faremos apenas o login na API, cadastraremos um novo produto e em seguida faremos um GET para validar que nosso produto está lá, beleza? Vamos nessa?
Começamos utilizando a seção Settings para documentar nosso teste e nessa seção vão apenas alguns apontamentos necessários.
E na seção Test Case é onde escrevemos os testes.
As linhas indentadas serão as futuras Keywords lá no documento Resources.
O arquivo Resources é onde os testes virão Keywords, nele ficam todas as ações deixando o seu arquivo de testes bem limpo e “legível”.
Não é fácil demais?
No meu Suite Setup (uma seção onde você define algumas ações que devem ser executadas antes de iniciar a Suite toda) eu deixei a minha keyword “Conectar a minha API” pois é um pré requisito de todos os testes que faremos.
Você pode ver como ela é estruturada abaixo, e observar como é fácil usar o Robot. Devemos apenas usar a Keyword Create Session dar um nome para a nossa API e em seguida passar a URL base:
Agora vamos aos testes, utilizaremos as Keywords criadas na sessão Test Case:
Como você pode ver usamos as Keywords “Post Request” e “Get Request” lá da biblioteca Requests e ela faz todo o trabalho pesado. Criamos um dicionário para passar o header que é necessário para acessar a nossa API e no data, mandamos direto o nosso JSON que a API irá ler e consumir.
Depois de fazer o Login pegamos da resposta o Token e armazenamos em uma variável ${TOKEN} para usar nos demais testes (no header pois essa API necessita de autenticação).
E assim segue para todas as requisições, é muito fácil não é? Você vai ver seu trabalho rendendo muito.
Agora vamos dar uma olhadinha em algumas validações que podemos fazer:
La nas variáveis criamos uma com o nosso JSON esperado ${PRODUTO_ESPERADO}, e vamos fazendo as comparações entre a resposta do teste e o nosso JSON. Não é Fácil?
Para executar todos esses testes usamos somente uma linha de comando e em poucos segundos todos os testes são executados:
robot TestCaseAPILojinha.robot
E o mais legal de tudo é o relatório que o Robot já faz e nos disponibiliza:
Nele você poderá ter as estatísticas, quantos passaram, quantos falharam, poderá dividir seus testes utilizando tags e o Robot ainda cria um LOG que mostra todas as keywords que foram executadas passo a passo e detalhadas.
E aí já deu para se apaixonar pelo Robozinho?
Referências