Automatizando Testes com Python, Selenium e Behave
- #Python
- #BDD
- #Selenium
No artigo de hoje, mostrarei como realizar testes automatizados com Python, Selenium e Behave através de um projeto totalmente prático!
Vamos lá!!!
Aprenda em um projeto prático como automatizar testes com Python, Selenium e Behave
A idéia desse artigo é compartilhar com vocês um pouco do conhecimento que tive trabalhando com Automação de Testes.
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 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?
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 em nosso projeto.
Execute o comando abaixo na pasta raiz do seu projeto para criar o ambiente virtual, lembrando que o “env” pode ser substituido 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.
o (env) indica que o ambiente virtual foi ativado.
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.
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.
Estrutura do nosso projeto.
Vamos criar primeiramente o arquivo environment.py, esse arquivo deve conter as configurações básicas do projeto.
environment.py
- 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 saidas em comandos print(algo que por padrão no behave vem desativado).
behave.ini
Dentro da pasta features criaremos agora nosso Gherkin, onde terá a nossa estória de usuário.
consultar_classificacao.feature
Após escrever a feature execute o comando abaixo no seu terminal.
(env) $ behave
Se deu tudo, 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.
consulta_classificacao.py
- 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).
Desenvolveremos nosso step passo a passo para que entenda o que cada linha do arquivo está sendo feito 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 vê nosso projeto funcionando pela primeira vez(iremos abrir o navegador) 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 dá 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…
Lets’Go….
Implemente o código …
Finalizando…
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 vê nosso teste em ação, execute novamente no terminal o comando.
(env) $ behave
Se tudo dê certo e você seguiu 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
Resultado dos nossos testes executados.
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 e deixar seu feedback.