Automação de Testes utilizando Selenium
Vocês já ouviram falar de testes automatizados utilizando Selenium? Caso não, este artigo irá mostrar um pouco mais desse framework que está a cada dia ganhando mais mercado e a confiança dentro das grandes empresas.
Mas o que é o Selenium?
Selenium é framework que possibilita a execução de ações automáticas em aplicações web. Através dele é possível criar robôs de testes, RPA e outras automações que rodam diretamente no browser, exatamente como o usuário faria.
Como funciona?
O framework possui uma série de bibliotecas e é suportado pelas principais IDEs do mercado, como o Eclipse, Visual Studio, NetBeans entre outros. A principal funcionalidade junto ao WebDriver é na simulação da interação de usuários com elementos típicos de uma página HTML.
Vantagens
Confiabilidade: Testes automáticos sempre serão executados de forma igual, tornando-os naturalmente confiáveis em comparação a testes manuais.
Redução de custos: Os recursos de uma empresa têm o seu valor pois conseguem realizar tarefas de alta complexidade que exigem raciocínio (coisas que máquinas não realizam). Desperdiçar o tempo desses recursos realizando tarefas repetitivas e cansativas aumentam a chance de falhas.
Diminuição do retrabalho, com verificações podendo ser executadas continuamente, um menor número de defeitos chega até a entrega final do software, diminuindo consideravelmente o custo em retrabalhos.
Objetivos principais
Os principais objetivos da automação web são:
• testes de funcionalidades da aplicação web;
• testes de compatibilidade entre browser e plataformas diferentes.
Como começar?
Através da API selenium que pode ser utilizada em diferentes linguagens, como Ruby, Python, Java entre outros (usaremos Java em nossos exemplos), iremos simular a ação de um usuário em uma aplicação web.
O Selenium é baseado no componente WebDriver e através dele é possível realizar as interações com as aplicações web. Existem diferentes WebDrivers para cada navegador, portanto se sua aplicação usa o Firefox, você deverá utilizar o WebDriver padrão Firefox, e assim por diante de acordo com o navegador utilizado. Essa limitação ocorre devido a cada browser ter um comportamento diferente e incompatibilidade entre eles.
Download e Instalação do Eclipse IDE
1º Passo
Acessar o link https://eclipse.org/downloads/ e realizar do download do Eclipse. Você deve tomar atenção no momento de escolher qual a IDE do Eclipse você deseja baixar. Escolha de acordo com o seu sistema operacional, no meu caso eu instalei o Windows.
2º Passo
Depois de baixar o arquivo você deve descompactá-lo em algum local dentro do seu sistema de arquivos. Procure por este ícone abaixo dentro da pasta onde você descompactou a IDE, execute-o e pronto! Bem-vindo ao Java.
Ao realizar a instalação da IDE, o eclipse por padrão irá criar dentro da pasta de seu usuário Windows a workspace onde você irá organizar os seus projetos.
Download do Selenium Standalone
1º Passo
Acessar o link http://www.seleniumhq.org/download/ e realizar o download do Selenium Standalone.
2º Passo
Após realizar o download do arquivo, o ideal é criar uma pasta em seu C:\ e colocar o arquivo. No meu caso eu criei a pasta chamada C:\Selenium.
Download do driver Chrome Driver
1º Passo
Acessar o link http://www.seleniumhq.org/download/ e realizar o download do Google Chrome Driver.
2º Passo
Extrair o arquivo em uma pasta no diretório C:\. No nosso caso colocamos o arquivo dentro da pasta C:\Selenium.
Associando Eclipse + Selenium
1º Passo
Abra o Eclipse e crie um novo projeto Java. Para isso clique na opção File e em seguida New > Java Project.
2º Passo
Coloque um nome no seu projeto e depois clique em Finish.
3º Passo
Seu projeto deve aparecer no canto esquerdo da dela, junto com outros projetos que você poderá criar. No caso o nosso projeto é o ExemploSelenium.
4º Passo
Clique com o botão direito em cima do seu projeto, selecione a opção Build Path e em seguida a opção Configure Build Path...
Dentro da aba Libraries selecione a opção Add External JARs...
Selecione o arquivo JAR selenium-server-standalone-3.141.5.jar.
Clique em Apply e em seguida em OK.
Será adicionado ao seu projeto a pasta Referenced Libraries.
Automatizando com Eclipse + Selenium
1º Passo
Clique com o botão direito em cima do seu projeto e selecione a opção New e em seguida a opção Class.
2º Passo
Assim que você criar a classe seu projeto irá aparecer dessa maneira. É nesta tela do canto direito que vamos criar o nosso código.
3º Passo
Iniciar a criação do seu script automático. Através da programação é possível criar as condições e os passos que seu teste deve seguir. Abaixo temos um exemplo básico de um script que abre um determinado site e pesquisa se há a palavra “economia” na página. Caso a palavra exista, será retornado a resposta “sim” ao final da execução do seu script.
O uso do Selenium é extremamente simples, primeiro é necessário definir o WebDriver que será utilizado e então a partir dele configurar qual URL será acessada. Por fim, com os dados da página carregados, basta um simples comando de busca para identificar se a palavra está ou não em cada uma delas.
Neste outro exemplo, vamos simular um usuário realizando login em uma rede social.
É possível visualizar que através das propriedades do HTML da página, podemos simular comandos de inserção do usuário, senha e em seguida um click no botão “Entrar”.
Com estes simples exemplos já é possível evoluir para aplicações mais complexas, seja com o objetivo de automatizar ações e tarefas ou tornar um processo de testes cada vez mais eficiente e próximo dos usuários, simulando uma condição real de funcionando.
Você sabia...
O que é class main?
Resposta: É a classe principal do projeto.
Porque criar as variáveis ao invés de deixa-las fixa no código?
Resposta: Pois caso seja alterado a informação, o programador não tenha que ficar procurando e ir mudando um por um. Se ele fizer alguma alteração em uma variável, o novo valor será utilizado em todas as linhas de código em que a mesma for utilizada. Isso acaba facilitando o trabalho do programador, deixa o código mais limpo e padronizado.