Por que eu devo ler este artigo:Este artigo é útil a todo desenvolvedor de testes automatizados que deseja conhecer mais a fundo os recursos do Selenium Web Driver, os quais, dentre outras coisas, permitem comunicação direta com as APIs de drivers dos diferentes navegadores, bem como fácil integração com frameworks de testes unitários como o jUnit e o TestNG. Veremos desde a configuração do ambiente, criação dos primeiros testes, até o gerenciamento de suítes completas em conformidade com o modelo de execução paralela, que possibilita acesso direto aos recursos do DOM HTML, além de converter todo o conteúdo para diversas linguagens de programação.

O Selenium é uma ferramenta utilizada para automatização de testes de sistemas que permite ao usuário reproduzi-los rapidamente no ambiente real da aplicação, em função da sua integração direta com o navegador. Através de uma extensão podemos criar os scripts de testes de forma simples e utilizar nas mais diversas linguagens de programação. No geral, o script é gerado em HTML, porém pode ser exportado e editado para testes em Java, C#, etc.

Neste artigo trataremos de entender como funciona o Selenium Web Driver, um recurso adicionado recentemente ao framework que se acopla à API do Selenium, permitindo a execução direta de testes via código fonte no servidor. Ele faz uso de uma API JavaScript extensiva que, aliada ao motor JavaScript do próprio navegador, permite acesso ao documento DOM completo da página HTML, assim como a manipulação de suas propriedades e funções. Em outras palavras, ele permite traduzir o código de servidor para o código de cliente e executar nossos testes automatizados no universo front-end dos diversos browsers suportados.

Além disso, uma outra grande vantagem é a possiblidade de execução das suítes de testes de forma paralelizada, criando várias threads e executando-as concorrentemente, algo que não temos na versão gráfica do Selenium. Dessa forma, os desenvolvedores podem criar testes unitários e atrelá-los aos automatizados, dentro de loops que abrem várias instâncias dos drivers dos navegadores e permitem testar diferentes recursos das aplicações de forma muito mais rápida e performática.

Criando um círculo de feedback rápido

Muitas pessoas reclamam do quanto tempo levam para executar todos os seus testes, que vão de algumas horas a alguns dias. Vamos ver como podemos acelerar as coisas e colocar aqueles que estamos escrevendo em execução de forma regular e rápida.

O segundo problema que podemos nos deparar em trazer outras pessoas para executar seus testes é a dificuldade para configurar o projeto para trabalhar em sua máquina e o grande esforço para que eles façam o mesmo.

Isso cria um círculo rápido de feedback, isto é, se os seus desenvolvedores estão rodando todos os testes antes de cada check-in eles vão saber as alterações feitas no código antes que o mesmo deixe a sua máquina.

Facilitando os testes para desenvolvedores

O ideal é que nossos testes sejam executados sempre que alguém inserir novos códigos ao repositório de código central. Partindo desse princípio, alguém pode simplesmente ir à base de código, executar um comando e ter todos funcionando.

Nós vamos fazer isso facilmente utilizando o Apache Maven, um poderoso framework para integração e geração de builds de projetos, além de gerenciador de dependências (o usaremos para mapear as dependências do Selenium Web Driver no tutorial).

Todavia, o Maven não é a única solução para este problema (por exemplo, o Gradle está rapidamente ganhando popularidade e aceitação da comunidade), mas possui uma probabilidade maior de utilização na área, já que a maioria dos desenvolvedores o terão utilizado em algum momento de sua carreira.

Um dos principais pontos positivos é que ele incentiva os desenvolvedores a usar um padrão na estrutura do projeto que torna mais fácil navegar ao redor do código fonte; ele também torna mais fácil a conexão em um sistema de CI (Continuous Integration, ou Integração Contínua), como o Jenkins ou o TeamCity, por exemplo.

Ao fazer uso do Maven somos capazes de verificar o nosso código no teste, simplesmente executando o comando mvn clean install em uma janela do terminal. Este comando irá baixar automaticamente todas as dependências mapeadas para o projeto, configurar o caminho de classes e executar todos os testes.

Construindo projeto de teste com o Maven

Para fazer o devido uso do Maven precisamos primeiramente baixá-lo no site oficial. Portanto, acesse o link disponível da seção Links e efetue o download do arquivo em formato zip, dentro da categoria Link do mesmo site (veja na Figura 1 o arquivo correto a baixar).

Figura 1. Selecionando arquivo de download do Maven.

Se estiver utilizando o sistema operacional Linux, pode fazer a mesma instalação usando a ferramenta apt-get, através do seguinte comando:

sudo apt-get install maven

Ou, se estiver utilizando um Mac, pode fazer o mesmo procedimento com o utilitário homebrew, via comando:

brew install maven

O próximo passo é adicionar o diretório /bin à variável de ambiente PATH do SO. Para isso acesse o menu Windows e digite “variáveis de ambiente”, selecione a opção “Editar Variáveis de Ambiente do Sistema” e, na janela que abrir, clique no botão “Variáveis de Ambiente...”. Em seguida, na nova janela, dentro das opções da categoria “Variáveis do sistema” procure pela variável Path, clique em “Editar” e no final do conteúdo insira um ponto-e-vírgula (;). Adicione também o caminho da pasta /bin completo de onde descompactamos o zip do Maven, tal como temos na Figura 2. Clique em OK três vezes e pronto, seu ambiente estará pronto para trabalhar com a ferramenta.

Figura 2. Configurando variável de ambiente Path para o Maven.

Depois de ter o Maven instalado e funcionando, vamos começar nosso projeto Selenium preenchendo o nosso arquivo básico de configuração do POM (pom.xml). O leitor pode ficar à vontade para usar qualquer IDE de sua preferência ou configurar os arquivos de forma manual no Windows Explorer. Para este artigo faremos uso da IDE Eclipse (vide seção Links para download), por sua simplicidade em se integrar com o Maven e manusear seus recursos.

Dentro da IDE selecione a opção File > New > Java Project, dê um nome ao seu projeto (selenium-web-driver) e clique em Finish. Isso será o suficiente para criar uma estrutura básica para executar as bibliotecas do Selenium Web Driver, assim como as suas dependências. Entretanto, antes temos que converter nosso projeto para ser reconhecido como um projeto Maven no ambiente. Clique com o botão direito sobre o projeto e selecione a opção Configure > Convert to Maven Project. Uma janela com as propriedades do POM aparecerá para informar os ids de artefato e grupo, além do tipo final de empacotamento que usaremos. Preencha todas as informações tal como mostramos na Figura 3 e clique em Finish.

Figura 3. Configurando parâmetros do POM no Maven.

Para efetuar os testes automatizados precisamos de um framework auxiliar de testes unitários para efetuar as operações de lógica de negócio na camada do servidor. Existem dois ...

Quer ler esse conteúdo completo? Seja um assinante e descubra as vantagens.
  • 473 Cursos
  • 10K Artigos
  • 100 DevCasts
  • 30 Projetos
  • 80 Guias
Tenha acesso completo