Selenium Tutorial de grade: configurar um hub e um nó (exemplo)
O que é o Selenium Grade?
Selenium Grade É uma parte da Selenium Suíte especializada na execução de vários testes em diferentes navegadores, sistemas operacionais e máquinas em paralelo. Isso é conseguido roteando os comandos de instâncias remotas do navegador onde um servidor atua como um hub. Um usuário precisa configurar o servidor remoto para executar os testes.
Selenium A Grade tem 2 versões - a Grade 1 mais antiga e a Grade 2 mais recente. Vamos nos concentrar apenas na Grade 2 porque a Grade 1 está gradualmente sendo obsoleta pelo Selenium Equipe.
Selenium Grade Archiarquitetura
Selenium Grid tem um hub e um nó Archiarquitetura.

Hub
- O hub é o ponto central onde você carrega seus testes.
- Deve haver apenas um hub em uma grade.
- O hub é iniciado apenas em uma única máquina, digamos, um computador cujo sistema operacional é Windows 7 e cujo navegador é o IE.
- A máquina que contém o hub é onde os testes serão executados, mas você verá o navegador sendo automatizado no nó.
Nodes
- Os nós são os Selenium instâncias que executarão os testes que você carregou no hub.
- Pode haver um ou mais nós em uma grade.
- Os nós podem ser lançados em várias máquinas com diferentes plataformas e navegadores.
- As máquinas que executam os nós não precisam ser da mesma plataforma do hub.
Selenium Grid usa um conceito hub-node onde você executa o teste apenas em uma única máquina chamada hub, mas a execução será feita por máquinas diferentes chamadas nós.
Como configurar Selenium Grade?
Nesta seção, você usará 2 máquinas. A primeira máquina será o sistema que executará o hub enquanto a outra máquina executará um nó. Para simplificar, vamos chamar a máquina onde o hub é executado como “Máquina A”, enquanto a máquina onde o nó é executado será “Máquina B”. Também é importante observar seus endereços IP. Digamos que a Máquina A tenha um endereço IP 192.168.1.3 enquanto a Máquina B tenha um IP 192.168.1.4.
Passo 1) Faça o download do Selenium Servidor de aqui.
Passo 2) Você pode colocar o Selenium Arquivo .jar do servidor em qualquer lugar do seu disco rígido. Mas, para os fins deste tutorial, coloque-o na unidade C da Máquina A e da Máquina B. Depois de fazer isso, você concluiu a instalação Selenium Grade. As etapas a seguir iniciarão o hub e o nó.
Passo 3)
- Agora vamos lançar um hub. Vá para a Máquina A. Usando o prompt de comando, navegue até a raiz da unidade da Máquina A – C, porque esse é o diretório onde colocamos o Selenium Servidor.
- No prompt de comando, digite java -jar selenium-server-standalone-2.30.0.jar -role hub
- O hub deve ser lançado com sucesso. Seu prompt de comando deve ser semelhante à imagem abaixo.
Passo 4) Outra forma de verificar se o hub está funcionando é usando um navegador. Selenium O Grid, por padrão, usa a porta 4444 da Máquina A para sua interface web. Basta abrir um navegador e ir para http://localhost:4444/grid/console
Além disso, você pode verificar se a Máquina B pode acessar a interface web do hub iniciando um navegador lá e indo para onde “iporhostnameofmachineA” deve ser o endereço IP ou o nome do host da máquina onde o hub está sendo executado. Como o endereço IP da Máquina A é 192.168.1.3, no navegador da Máquina B você deve digitar http://192.168.1.3:4444/grid/console
Passo 5)
- Agora que o hub já está configurado, vamos lançar um nó. Vá para a Máquina B e inicie um prompt de comando lá.
- Navegue até a raiz da Unidade C e digite o código abaixo. Usamos o endereço IP 192.168.1.3 porque é onde o hub está funcionando. Também usamos a porta 5566, embora você possa escolher qualquer número de porta livre que desejar.
- NOTA: Agora você deve fornecer o caminho para o driver Gecko se estiver usando Firefox. Aqui está o código atualizado que precisa ser usado
java -Dwebdriver.gecko.driver="C:\geckodriver.exe" -jar selenium-server-standalone-3.4.0.jar -role webdriver -hub http://192.168.1.3:4444/grid/register -port 5566
- Ao pressionar Enter, seu prompt de comando deve ser semelhante à imagem abaixo.
Passo 6) Vou ao Selenium Interface web de grade e atualize a página. Você deveria ver algo assim.
Neste ponto, você já configurou uma grade simples. Agora você está pronto para executar um teste remotamente na Máquina B.
Quando usar Selenium Grade?
Você deveria usar Selenium Grade quando você quiser fazer um ou ambos os seguintes:
- Execute seus testes em diferentes navegadores, sistemas operacionais e máquinas, tudo ao mesmo tempo. Isso garantirá que o aplicativo que você está Ensaios é totalmente compatível com uma ampla variedade de combinações de navegador e sistema operacional.
- Economize tempo na execução de seus conjuntos de testes. Se você configurar Selenium Grid para executar, digamos, 4 testes por vez, então você seria capaz de terminar todo o conjunto cerca de 4 vezes mais rápido.
Grade 1.0 versus Grade 2.0
A seguir estão as principais diferenças entre Selenium Grade 1 e 2.
Grade 1 | Grade 2 |
---|---|
Selenium A Grade 1 possui um controle remoto próprio, diferente do Selenium Servidor RC. São dois programas diferentes. | Selenium A Grade 2 agora vem junto com o Selenium Arquivo jar do servidor |
Você precisa instalar e configurar apache Formiga primeiro antes de poder usar a Grade 1. | Você não precisa instalar o Apache Ant no Grid 2. |
Só pode apoiar Selenium Comandos/scripts RC. | Pode suportar ambos Selenium Scripts RC e WebDriver. |
Você só pode automatizar um navegador por controle remoto. | Um controle remoto pode automatizar até 5 navegadores. |
Selenium a grade pode ser configurada de duas maneiras diferentes; um por meio da linha de comando e outro por meio do arquivo de configuração JSON.
Projetando scripts de teste que podem ser executados na grade
Para projetar scripts de teste que serão executados na grade, precisamos usar Capacidades Desejadas e os votos de RemoteWebDriver objetos.
- Capacidades Desejadas é usado para definir o tipo de navegador e OS que iremos automatizar.
- RemoteWebDriver é usado para definir em qual nó (ou máquina) nosso teste será executado.
Para usar o Capacidades Desejadas objeto, você deve primeiro importar este pacote
Para usar o RemoteWebDriver objeto, você deve importar esses pacotes.
Usando o objeto DesiredCapabilites
Vá para a interface web do Grid e passe o mouse sobre a imagem do navegador que deseja automatizar. Tome nota do plataforma, e os votos de nome do navegador mostrado pela dica de ferramenta.
Neste caso, a plataforma é “XP” e o browserName é “Firefox. "
Usaremos a plataforma e o browserName em nosso WebDriver conforme mostrado abaixo (é claro que você precisa importar os pacotes necessários primeiro).
Usando o objeto RemoteWebDriver
Importe os pacotes necessários para RemoteWebDriver e depois passe o objeto DesiredCapabilities que criamos acima como parâmetro para o objeto RemoteWebDriver.
Executando um exemplo de caso de teste na grade
Abaixo está um WebDriver simples Teste código que você pode criar em Eclipse na Máquina A. Depois de executá-lo, a automação será realizada na Máquina B.
import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.*; public class Grid_2 { WebDriver driver; String baseUrl, nodeURL; @BeforeTest public void setUpWthrows MalformedURLException { baseUrl = "http://newtours.demoaut.com/"; nodeURL = "http://192.168.1.4:5566/wd/hub"; DesiredCapabilities capability = DesiredCapabilities.firefox(); capability. setBrowserName("firefox"); capability. setPlatform(Platform.XP); driver = new RemoteWebDriver(new URL(nodeURL), capability); } @AfterTest public void afterTest() { driver.quit(); } @Test public void simpleTest() { driver.get(baseUr1); Assert.assertEquas("Welcome: Mercury Tours", driver.getTitle()); } }
O teste deve passar.
Selenium configuração de grade usando arquivo JSON
JSON significa Javascript Notação de objeto. É um formato padrão usado para intercâmbio de dados entre o navegador e o servidor web. Selenium tem um arquivo de configuração JSON integrado que pode ser usado para configurar a grade Selenium.
Abaixo estão as etapas para configurar a grade Selenium usando o arquivo de configuração JSON.
Passo 1) Baixe o código do arquivo de configuração JSON usando o caminho abaixo
Aqui está o código
{ "port": 4444, "newSessionWaitTimeout": -1, "servlets" : [], "withoutServlets": [], "custom": {}, "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher", "registryClass": "org.openqa.grid.internal.DefaultGridRegistry", "throwOnCapabilityNotPresent": true, "cleanUpCycle": 5000, "role": "hub", "debug": false, "browserTimeout": 0, "timeout": 1800 }
Passo 2) Copie e cole o código em um editor de texto como o Bloco de Notas com a extensão '.json'
Passo 3)Inicie o hub usando o comando abaixo usando o prompt de comando
java -jar selenium-server-standalone-2.53.1.jar -role hub -hubConfig hubconfig.json
OBSERVAÇÃO: Selenium arquivo jar independente e o arquivo json devem estar presentes no mesmo diretório
Passo 4) A tela abaixo aparecerá, indicando que o hub foi configurado com sucesso
Passo 5) Abra o navegador da web e tente conectar-se ao URL abaixo
http://192.168.43.223:4444/grid/console
OBSERVAÇÃO: A URL pode variar de máquina para máquina. Deve ser usado o URL seguido de 'Os nós devem se registrar em' na tela acima.
Passo 6) A tela Grid Console aparecerá, indicando que o hub está instalado e funcionando
Configurar NODES usando JSON
Passo 1) Faça download do arquivo de configuração de nó de amostra fornecido por Selenium usando o URL abaixo
OBSERVAÇÃO: SE VOCÊ ESTIVER USANDO SELENIUM 3.0 OU ACIMA, O ARQUIVO JSON ABAIXO DEVE SER USADO
Passo 2) Copie e cole o código em um editor de texto como o Bloco de Notas e salve o arquivo com a extensão ‘.json’
Passo 3)
Execute o comando abaixo no prompt de comando
Java-Dwebdriver.chrome.driver="chromedriver.exe" -Dwebdriver.ie.driver="IEDriverServer.exe" -Dwebdriver.gecko.driver="geckodriver.exe" -jar selenium-server-standalone-2.53.1.jar -role node -nodeConfig node1.json
OBSERVAÇÃO: Antes de executar o comando, certifique-se de que os drivers de cada um dos navegadores foram baixados no diretório da máquina local
Passo 4) A tela abaixo aparecerá quando a tecla Enter for pressionada
Passo 5) Navegue até o console da grade para verificar se os nós foram configurados com sucesso
Os navegadores são exibidos no console da grade. Portanto, podemos ter certeza de que os nós foram configurados com sucesso.
Exemplos de casos de teste ativados Selenium Rede:
package com.objectrepository.demo; import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.*; public class SeleniumGrid { WebDriver driver; String baseURL, nodeURL; @BeforeTest public void setUp() throws MalformedURLException { baseURL = "https://demo.guru99.com/test/guru99home/"; nodeURL = "http://192.168.43.223:5566/wd/hub"; DesiredCapabilities capability = DesiredCapabilities.chrome(); capability.setBrowserName("chrome"); capability.setPlatform(Platform.WIN10); driver = new RemoteWebDriver(new URL(nodeURL), capability); } @AfterTest public void afterTest() { driver.quit(); } @Test public void sampleTest() { driver.get(baseURL); if (driver.getPageSource().contains("MOBILE TESTING")) { Assert.assertTrue(true, "Mobile Testing Link Found"); } else { Assert.assertTrue(false, "Failed: Link not found"); } } }
O código acima inicia o navegador Chrome e navega até o URL especificado na variável ‘baseURL’. Ele verificou que um link com o nome 'Mobile Testing' é exibido na página
O URL na variável 'nodeURL' pode ser modificado para refletir o endereço IP da máquina remota. O resultado do teste pode ser verificado no padrão TestNG relatório gerado
Resumo
- Selenium A grade é usada para executar vários testes simultaneamente em diferentes navegadores e plataformas.
- Grid usa o conceito hub-node.
- O hub é o ponto central onde você carrega seus testes.
- Os nós são os Selenium instâncias que executarão os testes que você carregou no hub.
- Para instalar Selenium Grid, você só precisa baixar o Selenium Arquivo jar do servidor – o mesmo arquivo usado na execução Selenium Testes RC.
- Existem duas maneiras de verificar se o hub está em execução: uma por meio do prompt de comando e a outra por meio de um navegador.
- Para executar scripts de teste no Grid, você deve usar os objetos DesiredCapabilities e RemoteWebDriver.
- DesiredCapabilites é usado para definir o tipo de navegador e sistema operacional que iremos automatizar.
- RemoteWebDriver é usado para definir em qual nó (ou máquina) nosso teste será executado.