Article image
João Barreto
João Barreto27/03/2023 00:25
Compartilhe

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

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

Vamos começar o jogo?

image

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.

image

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.

image

Estrutura do nosso projeto.

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

image

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).

image

behave.ini

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

image

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.

image

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

image

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.

image

Vamos colocar os robôs para trabalharem? Rodando nosso primeiro teste com Python, Selenium e Behave….

image

Para que possamos vê nosso projeto funcionando pela primeira vez(iremos abrir o navegador) implemente o código abaixo no given.

image

Digite novamente no seu terminal…

(env) $ behave

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

image

image

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

image

image

Vamos implementar nosso código…

image

  • 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”.

image

Continuando a implementação…

image

image

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….

image

Implemente o código …

image

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.

image

  • 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

image

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. 

Compartilhe
Comentários (0)