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

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

Muito importante, todos esses processos devem ser automatizados na medida máxima, pois em grandes empresas, criar individualmente casos de teste e pipeline seria caro e a melhor opção óbvia, a menos preferida 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 de forma concorrente 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 múltiplas 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 teste para os nós apropriados com base nas configurações de navegador e plataforma desejadas especificadas nos scripts de teste.

O 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 dele. Olhando para ele especificamente, faz parte do conjunto de ferramentas 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 pode também executar esses navegadores em vários sistemas operacionais, criando um ambiente de teste de ponta a ponta. sendo open-source, 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 no 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 deles.

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 é iniciado em uma única máquina com um sistema operacional definitivo e um navegador com os navegadores de teste completos e suas versões, e também com a 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 doJava ou Java 11 e superior. Isso pode ser baixado do site oficial.

Em seguida, precisaremos de instalar todos os navegadores necessários que desejamos 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 usarei o Eclipse IDE, pois este demo será baseado em Java. Este IDE pode ser baixado do site oficial do Eclipse.

Para a última pré-requisito, 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 eu 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 pelos passos que eu vou seguir agora. Eu posso me mover para baixo para o nome do meu projeto, clicar com o botão direito e ir para o caminho de compilação. Aqui, posso descer até configurar o caminho de compilação e, no lado direito, eu veria uma possibilidade chamada adicionar jaws externos. De aqui, eu posso adicionar o servidor Selenium que estou usando.

Clique aplicar e fechar, e depois 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 faz com que seja muito fácil encontrar a pasta e é um processo simples.since este é apenas um computador e um navegador, eu usarei o modo Grid e o modo isolado do Selenium.

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

Bem, agora que 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 comandos. 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 estereótipos completos para o Chrome. E nas sessões, o meu caso de teste padrão está rodando ativamente. Você pode ver também a página web.

Papéis de Grid

O Grid consiste em seis componentes diferentes, o que dá flexibilidade para implantar suas execuções de automação de teste de várias maneiras. Você pode iniciá-los individuais 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 fluida, o modo standalone opera como uma entidade única. Iniciando o modo standalone, você deploya facilmente um Grid totalmente operacional com um único comando, dentro de um único processo. Note que standalone está restrito a execuções 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 combine diferentes máquinas com diferentes sistemas operacionais e versões do navegador. Por causa disso, você terá uma única entrada para executar testes webdriver em vários ambientes.

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

Java

 

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

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

Java

 

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

Summary

No fim, para resumir, o Selenium Grid facilita a execução em paralelo de várias 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 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 da Internet. 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 os nossos testes.

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