Selenium IDE, Side Runner e integração com o Junit/Manven

O Selenium fornece ferramentas par criação e reprodução de testes funcionais. Entre as principais ferramentas do Selenium são o Selenium IDE e o Selenium Side Runner. O IDE é uma ferramenta que funciona como um plugin do Chrome e Firefox capaz de gravar, editar, depurar testes funcionais na Web. Outra característica interessante do Selenium IDE é a possibilidade de exportar o testes na linguagem em Java/Junit, facilitando assim, a integração dentro do processo de integração contínua com o Maven. Por outro lado, o Side Runner é uma software baseado em Nodejs preparado para executar, por meio do interpretador de comandos, testes que foram previamente exportados pelo Selenium IDE. Assim, esse documento mostra aspectos da instalação e uso dessas ferramentas bastante conhecidas dentro do assunto de teste funcionais.

Selenium IDE

Como dito anteriormente, o Selenium IDE é uma ferramenta para gravação, edição e depuração de testes, ou seja, na prática trata-se do local onde os testes serão planejados, criados e testados. O Vídeo 1 ilustra detalhes de instalação e execução de um pequeno teste de exemplo com o Selenium IDE.

Vídeo 1 - Hello World com o Selenium IDE

Alguns passos para reproduzir o exemplo do vídeo:

  • Acesse: https://www.seleniumhq.org/selenium-ide/
  • Instale o plugin do Selenium para Chrome ou Firefox
  • Depois de acessar, escolha a opção “Record a new test in a new Project” para criar um caso de teste
  • Informe um nome para o projeto, como exemplo, informe “IFRS”
  • Logo, informe a URL do sistema que será testado, por exemplo, “http://ifrs.edu.br”
  • Como botão de gravação ligado, navegue pela página no IFRS até chegar no edital de fomento interno 64/2019
  • Depois de chegar até a página de destino, pare a gravação
  • Insira um commando/assertiva na sequência do teste para verificar se o título do edital está presente na página: assert element present
  • Utilize a funcionalidade “Select target in page” para fazer com que o Selenium identifique o elemento da página que possui o título
  • Rode o teste para verificar se a execução está correta
  • Exporte o teste no formato .side para poder salvar e/ou executar com o Side Runner.

Nota: Um exemplo similar ao do vídeo (arquivo .side) pode ser obtido aqui.


Instalação do Selenium-side-runner

O Selenium Side Runner é uma aplicação que permite chamar a execução de um navegador na linha de comando e, assim, executar casos de testes no formato .side. Inicialmente, devemos instalar o Side Runner, abaixo seguem os passos de instalação em um Ubuntu:

  • sudo apt update
  • sudo apt install nodejs
  • sudo apt install npm
  • sudo npm install -g selenium-side-runner

Instalação do driver para Firefox ou Chrome

  • Firefox: sudo npm install -g geckodriver
  • Chrome: sudo npm install -g chromedriver

Depois de instalar, podemos executar o Side Runner da seguinte maneira no Firefox e/ou Chrome:

  • selenium-side-runner -c "browserName=firefox" ifrs.side
  • selenium-side-runner -c "browserName=chrome" ifrs.side

Atenção: não execute o selenium-side-runner com o sudo


Integração do Selenium com o Junit/Maven

Para rodar casos/suíte de teste do Selenium por intermédio do Junit, temos que primeiro exportar o teste da IDE, conforme ilustra os passos um e dois da imagem abaixo:

interface Web do GitHub
Figura 1 - Selenium IDE

Logo, escolha a opção Junit para poder obter um código em Java.

interface Web do GitHub
Figura 2 - Exportando um código em Java

Agora, temos que compilar a classe para que possamos executar o código. A classe que obtivemos da IDE possui duas dependências: (1) Junit 4 e (2) Selenium Java.

Para poder utilizar o Selenium Java adicione a seguinte dependência do Maven no arquivo pom.xml do seu projeto:

 <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.0.0-alpha-7</version>
</dependency>

Atenção: Atualmente o Selenium IDE exporta classes de testes no formato de Junit 4, assim, se você quiser trabalhar na versão 5 do Junit, será necessário adaptar o código, como por exemplo, substituir a anotações que atualmente estão depreciadas no Junit 4 pelas novas anotações do Junit 5.


Por padrão, a classe Java que foi exportada do Selenium IDE utiliza o Chrome Driver para executar os testes. Assim, certifique-se que o Chrome e o Chrome Driver estão instalados no seu computador. As instruções de como instalar o Chrome Driver podem ser obtidas nno seguinte endereço na Web: ChromeDriver.

Um exemplo de projeto Junit que implementa o caso de teste ifrs.side do Selenium pode ser observado no seguinte endereço na Web. Note que no arquivo pom.xml a presença da dependência do Selenium Java. Depois disso, observe o seguinte trecho de código da classe WebTest.java.

@Test
@SuppressWarnings("checkstyle:magicnumber")
public void web() {
    WebTest.driver.get("https://ifrs.edu.br/");
    WebTest.driver.manage().window().setSize(new Dimension(1440, 877));
    WebTest.driver.findElement(By.linkText("Editais")).click();
    List<WebElement> elements = driver.findElements(By.cssSelector(".editais__title"));
    assert elements.size() > 0;
}

O código acima realiza os seguintes passos: (1) executa um HTTP GET de uma URL (ifrs.edu.br), (2) configura o tamanho da janela do navegador (opcional), (3) navega por meio do link Editais, (4) procura um elemento que contenha a classe CSS .editais__title e (5) se encontrar o elemento que contenha o CSS desejado faz com que o teste passe. O vídeo abaixo mostra como podemos utilizar o Selenium IDE para exportar e usar casos de teste em Junit.

Vídeo 2 - Selenium IDE para Junit/Maven

Nota: O Vídeo 2 foi extraído da gravação de um encontro síncrono no Google Meet, portanto, a qualidade visual,sonora e também as falas podem estar prejudicadas em alguns trechos.


Exemplo Selenium Java

O exemplo abaixo demonstra a execução de um teste funcional com o Selenium Java. O teste consiste em acessar o site do IFRS/POA e verificar se a página do curso de Sistemas para Internet possui um coordenador. Veja o código:

Exemplo Selenium Java

Rodrigo Prestes Machado
CC BY 4.0 DEED

Copyright © 2024 RPM Hub. Distributed by CC-BY-4.0 license.