Automatizando Serviços REST com RestSharp e C#
Minha zona de conforto sempre foi utilizar Selenium e Ruby para qualquer coisa, precisa de testes de front-end? Capybara! Precisa de testes Mobile? Calabash! Precisa de testes Back-end? HTTParty!
Minha zona de conforto deu uma sacudida em Abril/2018 quando eu aceitei um novo desafio e o projeto deveria ser automatizado em RestSharp. Para a minha surpresa o RestSharp se mostrou tão simples quanto o HTTParty e hoje vou te ensinar como dar os primeiros passos. Lembrando que para facilitar o exemplo não utilizaremos o conceito de Page Objects, então todo o nosso código estará na mesma classe, mas futuramente eu escreverei uma abordagem mais próxima do que utilizamos nos projetos.
Mãos a obra! Vamos criar um projeto que faça a chamada para uma API que retorna endereços assim como a API dos Correios. Antes de fazer qualquer automação devemos fazer um teste manual para entender como funciona o que iremos testar, então vamos fazer um teste com a API da Viacep que consiste em informar na URL um CEP e a API nos retorna dados de endereço.
Teste manual feito, API funcionando, o próximo passo é abrir seu Visual Studio. Após aberto precisaremos criar o nosso projeto:
Criaremos um Console Application chamado “Correios” utilizando o .Net Core, faça o download dos pacotes do .Net Core caso você ainda não o tenha na máquina.
Agora vamos adicionar as nossas dependências no Nuget. botão direito na nossa solução e clicar em “Gerenciar pacotes do NuGet …”.
Vamos instalar as últimas versões dos pacotes de “FluentAssertions”, “Microsoft.NET.Sdk”, “Microsoft.NETCore.App”, “RestSharp”, “xunit”, “xunit.runner.console” e “xunit.runner.visualstudio”. Sua lista de pacotes instalados deve ficar assim:
Projeto criado, pacotes instalados o nosso projeto deve estar assim:
Em nossa classe program vamos incluir a chamada para as bibliotecas “RestSharp”, “Xunit” e “FluentAssertions”. Vamos apagar o método main e criaremos nosso método “GetCep” que recebe o parâmetro “CEP”.
Dentro do método GetCEP criaremos duas variáveis:
- client = Do tipo RestClient que receberá nossa URL de chamada
- RSrequest = Do tipo RestRequest que informará qual o tipo da chamada(GET, POST, PUT ou DELETE) e o formato da chamada.
Por fim retornaremos a chamada de nossas variáveis.
Agora vamos criar nosso caso de teste. Para criar um caso de teste no Xunit precisamos informar a tag [Fact] acima do caso de teste. Vamos criar um caso de teste que valide se o status code retornado está correto:
Pronto, agora é só clicar com o botão direito em nosso caso de teste, mandar “Executar Testes” e ver o resultado verdinho.
Espero que este primeiro artigo ajude nos seus primeiros passos com RestSharp, nos próximos artigos entrarei um pouco mais fundo nos testes e validações. Abraços!