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 testes automatizados 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
- Python 3.6+
- PIP
- Virtualenv (iremos instalar com o PIP)
- Selenium (iremos instalar com o PIP)
- Behave (iremos instalar com o PIP)
- Driver de um Browser¹: Google Chrome ou Mozilla Firefox.
¹ — Ressaltando que a pasta onde está o Driver necessita estar no PATH.
Vamos começar o jogo?
Testes automatizados
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 automatizados, 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? ✌