1. Início
  2. Back-end
  3. Automatizando Testes com Python, Selenium e Behave

Automatizando Testes com Python, Selenium e Behave

imagem roxa com testes automatizados com python selenium e behave escrito

No artigo de hoje, mostrarei como realizar testes automatizados com Python, Selenium e Behave através de um projeto totalmente prático.

Vamos lá!

10 Livros de Python para ser um especialista

Testes automatizados

A idéia desse artigo é compartilhar com vocês um pouco de conhecimento que tenho trabalhando com Automação de Testes no dia a dia 🙂

Vamos desenvolver um projeto prático, onde iremos verificar no site do Globo Esporte quem é o 1º colocado no Campeonato Brasileiro.

Utilizaremos Python, Selenium e Behave (utilizaremos o BDD para escrever nossa estória de usuário, olha o que lindo)

Pré requisitos

¹ — Ressaltando que a pasta onde está o Driver necessita estar no PATH.

Vamos começar o jogo?

Automatizando testes

Partirei do pré-suposto que você tem pelo menos o Python 3 e o PIP instalado no seu computador, se você não tiver instalado instale-o agora.

Se já tem o Python e o PIP instalado, execute o comando abaixo no seu terminal caso não tenha o virtualenv.

 $ pip install virtualenv 

Após instalar o virtualenv, iremos criar nosso ambiente virtual, onde iremos instalar todas as dependências do nosso projeto, precisamos criar um ambiente virtual.

Execute o comando abaixo na pasta raiz do seu projeto para criar o ambiente virtual, lembrando que o “env” pode ser substituído por qualquer nome que você escolha.

 $ virtualenv env 

Para ativar o ambiente, execute o comando abaixo.

Caso utilize o Windows.

 env\Scripts\activate 

Caso utilize o Linux/MacOS

 $ source ./env/bin/activate 

O comando acima irá ativar a virtualenv e teremos um retorno similar ao ilustrado abaixo.

Note que o nome da virtualenv agora é exibido antes do caminho do diretório em que estamos. Isso indica que a virtualenv foi ativada com sucesso.

>>Leitura Recomendada:
Algoritmos de recomendação: o que são e como implementá-los?

Instalando o Selenium e o Behave

Agora vamos instalar no nosso ambiente virtual o Selenium e o Behave, para isso execute os comandos abaixo.

 (env) $ pip install selenium 
 (env) $ pip install behave 

Vamos organizar nosso código com a seguinte estrutura:

Vamos criar primeiramente o arquivo environment.py, esse arquivo deve conter as configurações básicas do projeto.

  • Na linha 1 importamos o webdriver do Selenium para que possamos interagir com os elementos da página.
  • Nas linhas 3 e 4 criamos uma instância do webdriver no nosso projeto. Veja que não informei nenhum parâmetro em Chrome(), por isso a importância da pasta onde está o driver está no PATH do sistema.
  • Na linha 6 especificamos que o comando print() seja exibido após cada step do nosso teste.
  • E por último nas linha 9 e 10, encerramos a instância do driver em execução(encerramos o navegador).

Vamos trabalhar agora no arquivo behave.ini. Esse arquivo tem uma importante configuração que precisaremos em nosso projeto: Mostrar saídas em comandos print (algo que por padrão no behave vem desativado).

Dentro da pasta features criaremos agora nosso Gherkin, onde terá a nossa estória de usuário.

Após escrever a feature, execute o comando abaixo no seu terminal:

 (env) $ behave 

Se deu tudo certo, você terá como resposta algo parecido com o código abaixo.

 — Copie o conteúdo abaixo para que posteriormente implementemos em nosso projeto.

Iremos implementar agora os steps do nosso teste, crie o arquivo consulta_classificacao.py dentro da pasta steps com o conteúdo abaixo.

Na linha 1, importamos do Behave as funções given, when e then e na linha 4 definimos uma variável com a URL do site que interagiremos (globoesporte.com).

>>Leitura Recomendada:
Python microservices: Nameko + Flask + RabbitMQ + Docker

Passo a passo da automação de teste

Desenvolveremos nosso step passo a passo para que entenda o que está sendo feito em cada linha do arquivo  🙂

Dando continuidade, pegue o conteúdo que você copiou na execução do comando behave e cole abaixo no código implementado acima.

Vamos colocar os robôs para trabalharem? 

Rodando nosso primeiro teste com Python, Selenium e Behave….

Para que possamos ver nosso projeto funcionando pela primeira vez, implemente o código abaixo no given.

Digite novamente no seu terminal:

 (env) $ behave 

Feito isso, seu navegador deve abrir no site do Globo Esporte.

Para dar continuidade nos nossos testes, iremos clicar no menu lateral.

Vamos implementar nosso código?

  • Na linha 7, definimos uma variável com o elemento que estamos interagindo.
  • Nas linhas 15 e 16, clicamos no elemento que selecionamos.

 Após clicar no menu, vamos clicar no link “brasileirão 2019”.

Continuando a implementação…

Após clicar no link do brasileirão, será carregada a página com a classificação.

Para certificarmos que a classificação é exibida, vamos selecionar o elemento (pelo xpath) com o primeiro colocado e buscar o texto do elemento.

Let’s Go!

Implemente o código:

>>Leitura Recomendada:
Melhores linguagens de programação para devs iniciantes

Finalizando os testes automatizados

Por último vamos implementar nosso step que busca o primeiro colocado e exibe em tela. Como plus, vamos salvar o resultado em um txt usando o Python.

  • Na linha 29 buscamos o texto contido no elemento get_primeiro e salvamos na variável primeiro, para exibirmos-o em tela.
  • A partir das linhas 33 salvamos a variável primeiro em um arquivo txt, na pasta results.

Por fim, para que possamos ver nosso teste em ação, execute novamente no terminal o comando.

 (env) $ behave 

Se tudo der certo e você tiver seguido passo a passo o artigo, o teste será executado e você verá uma tela como a abaixo.

Será criado, também, o arquivo results.txt na pasta results com o primeiro colocado.

Se quiser acessar o código fonte completo do projeto, acessa lá meu github.

É isso pessoal, terminamos aqui o artigo.

Por favor, não deixem de compartilhar, comentar, deixar seu feedback. E ah, se estiver buscando por uma oportunidade na área, que tal acessar nossa página com vagas para desenvolvedores Python? ✌

Categorias

Leituras Recomendadas

Quer receber conteúdos incríveis como esses?

Assine nossa newsletter para ficar por dentro de todas as novidades do universo de TI e carreiras tech.