Tutorial Selenium Grid: Dicas Essenciais e Como Configurá-lo

Se você for um testador ou um desenvolvedor web experiente, você precisa testar suas aplicações para bugs e performance em todos os navegadores e sistemas operacionais disponíveis. Mas com tantas dependências em mãos, não só diferentes navegadores, mas versões diferentes, também, certamente torna uma tarefa pesada.

Muito importante, todos esses processos devem ser automatizados na maior medida possível, porque em grandes empresas, criar individualmente casos de teste e pipeline seria caro e a método mais óbvio, o menos preferível de sempre. Agora é aqui que entra o Selenium Grid, uma ferramenta de automação de teste amplamente usada baseada em servidor.

O que é o Selenium Grid?

O Selenium Grid é uma ferramenta usada para testes em paralelo e contínuo em mais de um navegador e ambiente. Ele permite que você execute testes concorrentemente em diferentes máquinas contra diferentes navegadores e sistemas operacionais. O propósito do Selenium Grid é distribuir a carga de execução de testes por meio de várias máquinas, tornando mais rápida a execução de um grande número de testes.

A arquitetura do Selenium Grid envolve principalmente um hub e muitos nós. O hub atua como um ponto central onde as solicitações de teste precisam ser enviadas. Os nós são as máquinas (físicas ou virtuais) onde os testes estão sendo executados. O hub roteia as solicitações de execução de testes para os nós apropriados com base nas configurações de navegador e plataforma desejadas especificadas em scripts de teste.

Selenium Grid suporta várias configurações e testes distribuídos, incluindo execução em paralelo e testes de capacidade de navegador selecionada. É comumente usado em testes automatizados para garantir compatibilidade e funcionalidade em diferentes navegadores e plataformas.

Por que é necessário o Selenium Grid?

Você pode estar muito interessado em entender por que precisamos disso de todo. Olhando para ele especificamente, ele faz parte da suite Selenium, que também inclui outros softwares e funcionalidades, como Selenium WebDriver e Selenium IDE, e vemos como ele pode suportar navegadores como Chrome, Microsoft Edge, Opera, Safari e todas as suas versões diferentes juntas. Além disso, ele também pode executar esses navegadores em vários sistemas operacionais, criando um ambiente de teste de ponta a ponta. sendo de código aberto, ele também está disponível gratuitamente e obtém as atualizações e desenvolvimentos mais rápidos com acesso completo a todas as informações.

Arquitetura do Selenium Grid

Vamos entender a arquitetura do Selenium Grid. O Selenium Grid funciona com o modelo de Hub e Node, onde um Hub está conectado a vários Nodes e pode executar em várias máquinas, navegadores e versões diferentes de seus navegadores.

O Hub atua como o ponto central no Selenium grid, que encaminha os comandos de teste para as nós. Ele também recebe pedidos de teste do cliente e os roda para os nós necessários. O Hub é lançado em uma única máquina com um sistema operacional definitivo e um navegador com os navegadores de teste completos e suas versões, além da capacidade de configurá-lo em vários dispositivos que executam o sistema operacional compátível.

O Selenium também definiu outros componentes na arquitetura, que são explicados em detalhe em seu site, o que pode ser útil para executar o Selenium em seu modo totalmente distribuído com roteadores, sessões e distribuidores bem definidos. Agora que temos o conhecimento de fundo suficiente sobre o SeleniumGrid,

O Selenium Grid Pode ser Instalado e Usado em 4 Simples Passos

Passo 1

No passo 1, vamos configurar rapidamente os pré-requisitos.

Primeiro, precisamos garantir que estamos executando a versão mais recente do Java ou Java 11 e superior. Isso pode ser baixado do site oficial.

Em seguida, precisaremos de instalar todos os navegadores necessários que queremos testar. Vamos usar um driver do navegador Chrome com a versão 123 para acessar o navegador Chrome. Lembre-se também que as versões do driver e do navegador devem ser idênticas para executar os servidores Selenium. E, finalmente, eu vou usar o Eclipse IDE, já que este demo será baseado em Java. Essa IDE pode ser baixada do site oficial do Eclipse.

Para a pré-requisito final, precisaríamos de baixar a versão mais recente do servidor Selenium Grid do site oficial do Selenium.

Passo 2

Agora vamos começar com o passo 2. Para o passo 2, eu criei uma nova pasta e coloquei meu servidor Selenium e o driver Chrome que usarei para esta demonstração.

Java

 

package Selenium_test1 ;
	import java.net.MalformedURLException;

	public class test1{

	String hubUrl ="https://10.20.31.20";
	String url ="https://www.world.co/search";
	WebDriver driver;
	public void setupGrid()
	{
	DesiredCapabilities ds= new DesiredCapabilities();
	ds.setCapability("browserName", "Chrome");
	try{
	driver = new RemoteWebDriver( new URL(hubUrl),ds);
	} catch (malformedURLException e){
	e.printSTackTrace();
	}
	driver.get(url);
	}
	public void pageTitleValidation(){
	String title = driver.getTitle();
	System.out.println("page title :" +title);
	}
	public static void main(String[] args)
	{
	test1 obj = new test1();
	obj.setupGrid();
	obj.pageTitleValidation();
	}
	}

Passo 3

Agora para o Passo 3, abri o meu IDE Eclipse e usando o WebDriver, eu escrevi minha caso de teste. Vamos dar uma olhada em um novo projeto Maven de outros. Além disso, também precisaremos colar o driver Chrome que será usado nesta pasta em particular. A versão do servidor Selenium que está sendo usada precisa ser arrancada para o caminho deste projeto pelas etapas que eu vou seguir agora. Eu posso mover para baixo para o nome do meu projeto, clicar com o botão direito e ir para o caminho de construção. Aqui, posso descer até configurar o caminho de construção e na lateral direita, eu verá uma possibilidade chamada adicionar jaws externos. De aqui, eu posso adicionar o servidor Selenium que estou usando.

Clique em aplicar e fechar, e em seguida, vamos passar para o passo 4.

Passo 4

Agora para o passo 4, voltei para minha pasta do passo 2. Aqui, eu usarei o prompt de comando.

Isso torna muito fácil encontrar a pasta e é um processo simples. since this is only one machine and one browser, I will be using Selenium Edge Sandaland mode.

Agora o servidor está iniciando. Ele adiciona as dependências necessárias um por um, e o processo está sendo concluído. Ele nos deu um endereço particular para ir. Agora eu vou copiar este endereço e voltar para o passo 3. Aqui, na URL do hub, eu vou colar este endereço, e depois que meu código estiver completo, eu vou para o arquivo e executar isto como uma aplicação.

Bem, então agora que eu vejo que a aplicação está rodando, eu vou para o meu navegador Chrome, e eu vou colar o endereço que eu tive pelo prompt de comando. Este é o meu endereço Selenium e eu vejo as sessões estão rodando. Na visão geral, eu posso ver que foram criadas as estéticas completas para o Chrome. E nas sessões, o meu caso de teste padrão está rodando ativamente. Você também pode ver a página web.

Funções do Grid

O Grid consiste em seis componentes diferentes, o que dá flexibilidade para implantar sua execução de automação de testes de várias maneiras. Você pode iniciá-los individualmente bem como agrupá-los como um hub ou podemos executá-los em uma única máquina.

1. Autônomo

Integrando todos os componentes do Grid de forma ágil, o modo standalone opera como uma entidade única. Ao iniciar o modo standalone, você implanta facilmente um Grid totalmente operacional com um único comando, todos dentro de um processo único. Note que o standalone está restrito a execução em uma única máquina.

Java

 

java -jar selenium-server-<version>.jar standalone

2. Hub e Nó

Hub e nó são os componentes mais populares e amplamente usados. Eles permitem que usuários combinem máquinas diferentes com diferentes sistemas operacionais e versões do navegador. Devido a isso, você terá uma entrada única para executar testes do webdriver em vários ambientes.

hub é composto por Router, Distributor, Event bus, e Session Queue:

Java

 

java -jar selenium-server-<version>.jar hub

node detecta vários controladores disponíveis do caminho do sistema.

Java

 

java -jar selenium-server-<version>.jar node

Summary

Por fim, para resumir, o Selenium Grid facilita a execução em paralelo de vários testes em vários navegadores e plataformas, usando a arquitetura hub-node. O hub serve como o repositório central para manter os testes, enquanto os nós atuam como instâncias do Selenium, executando esses testes conforme instruídos pelo hub. Instalar o Selenium Grid consiste em baixar o arquivo de servidor Selenium jar, o mesmo arquivo usado para executar os testes Selenium RC. Para verificar se o hub está operacional ou não, pode-se alcançar através do prompt de comando ou um navegador web. Para executar os scripts de teste no Grid, é necessário utilizar os objetos DesiredCapabilities e RemoteWebDriver. DesiredCapabilities configura o tipo de navegador e o sistema operacional para automação, enquanto RemoteWebDriver designa o nó ou máquina para executar nossos testes.

Source:
https://dzone.com/articles/selenium-grid-tutorial