selenium grid tutorial
Introdução ao Selenium Grid e como realizar testes entre navegadores usando o Selenium Grid:
Agora estamos perto do fim disso série abrangente de tutoriais do Selenium . Na próxima semana, concluiremos esta série de treinamento online do Selenium com tutoriais de “estimativa de esforço de projetos do Selenium” e “perguntas e respostas da entrevista do Selenium”.
Hoje, neste tutorial, iremos apresentá-lo com Selenium Grid - a execução de teste distribuído ambiente para acelerar a execução de uma passagem de teste. Aprenda a realizar testes entre navegadores usando Selenium Grid.
O que você aprenderá:
- Qual é a necessidade da grade de selênio?
- Benefícios da grade de selênio
- Instale o Selenium GRID
- Navegador e nós
- maxInstances
- maxSession
- Amostra de código de grade
- Configuração usando arquivo JSON
- Conclusão
- Leitura recomendada
Qual é a necessidade da grade de selênio?
Conforme você passa por todo Tutoriais do Selenium WebDriver você descobrirá que o WebDriver executará seus casos de teste em uma única máquina.
Aqui estão alguns problemas com essa configuração:
- E se você quiser executar seus casos de teste para diferentes sistemas operacionais?
- Como executar seus casos de teste em diferentes versões do mesmo navegador?
- Como executar seus casos de teste em vários navegadores?
- Por que um cenário deve esperar pela execução de outros casos de teste, mesmo que não dependa de nenhum caso de teste?
Todos esses problemas são tratados no Selenium GRID.
À medida que prosseguirmos com o curso Selenium, teremos uma ideia de como podemos superar esses problemas. Basicamente, a arquitetura Grid é baseada na arquitetura mestre-escravo. A máquina mestre distribui casos de teste para diferentes máquinas escravas.
Existem 2 versões do Grid disponíveis. Selenium Grid 2.0 é o mais recente da Selenium. Selenium 1.0 era a versão anterior. A maioria dos especialistas em Selenium prefere usar Selenium Grid 2.0, pois é embalado com novos recursos. Selenium Grid 2.0 oferece suporte aos scripts Selenium RC e Selenium WebDriver.
Ferramenta Recomendada:
# 1) LambdaTest
Realize testes de automação Selenium em um Selenium Grid online escalonável, seguro e confiável baseado em nuvem. Acelere sua automação de teste Selenium ao mesmo tempo, aumente sua cobertura de teste testando em uma infraestrutura online de mais de 2.000 ambientes de desktop e navegador móvel.
Leitura sugerida = >> Automatize o teste de navegador com LambdaTest
Benefícios da grade de selênio
- O Selenium Grid oferece flexibilidade para distribuir seus casos de teste para execução.
- Reduz o tempo de processamento em lote.
- Pode realizar testes em vários navegadores.
- Pode realizar testes de vários sistemas operacionais.
Terminologia básica da grade de selênio:
Cubo : Hub é o ponto central de toda a Arquitetura GRID que recebe todas as solicitações. Existe apenas um hub na grade de selênio. O hub distribui os casos de teste em cada nó.
Nó : Pode haver vários nós na grade. Os testes serão executados em nós. Cada nó se comunica com o hub e executa o teste atribuído a ele.
Instale o Selenium GRID
Passo 1 : Baixe o arquivo jar do Selenium Server do site oficial do Selenium, anteriormente conhecido como Selenium RC Server e salve-o em qualquer local do disco local.
URL do selênio HQ: http://www.seleniumhq.org/download/
Passo 2 : Abra o prompt de comando e navegue até a pasta onde o servidor está localizado. Execute o servidor usando o comando abaixo
java -jar selenium-server-standalone-2.41.0.jar -role hub
O hub usará a porta 4444 por padrão. Essa porta pode ser alterada passando um número de porta diferente no prompt de comando, desde que a porta esteja aberta e não tenha sido atribuída uma tarefa.
O status pode ser verificado usando a interface da web: http: // localhost: 4444 / grid / console
etapa 3 : Vá para a outra máquina em que pretende configurar os nós. Abra o prompt de comando e execute a linha abaixo.
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://localhost:4444/grid/register -port 5556
Execute o servidor selenium em outras máquinas para iniciar os nós.
Navegador e nós
Depois de iniciar o hub e os nós em cada máquina, você navegará para o Console GRID
Você encontrará 5 navegadores Chrome, 5 Firefox e 1 IE na seção Navegador como abaixo.
Isso indica que por padrão você pode usar 5 navegadores Chrome, 5 Firefox e 1 navegador IE.
Por exemplo, se você deseja usar apenas o IE, pode iniciar o nó usando o comando abaixo:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore
Verifique o tipo de navegador junto com outros detalhes no console GRID clicando em ver configuração .
Da mesma forma para o Firefox:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox
Para Chrome:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome
Existem alguns cenários em que você pode precisar do navegador de cada tipo, por exemplo: IE, Chrome e Firefox.
Por exemplo, pode ser necessário usar 1 IE e 1 Firefox e 1 navegador Chrome
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore -browser browserName=firefox -browser browserName=chrome
maxInstances
maxInstance é usado para limitar o número de inicialização do navegador em um nó.
Por exemplo, se você deseja trabalhar com 2 Firefox e 2 IE, você pode iniciar o nó usando maxInstance.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox,maxInstance=3
A instância máxima pode ser verificada na guia de configuração.
Da mesma forma, outras instâncias do navegador podem ser configuradas usando maxInstances.
maxSession
maxSession é usado para configurar quantos navegadores podem ser usados paralelamente no sistema remoto.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome,maxInstance=3 -browser browserName=firefox,maxInstance=3 –maxSession 3
Da mesma forma, você pode iniciar vários nós e a configuração pode ser verificada no console.
NODE1:
NODE2:
Amostra de código de grade
Aqui, usei o TestNG para executar um caso de teste GRID de amostra.
Pré-requisito : Crie o hub e os nós conforme explicado anteriormente e o TestNG deve ser configurado no eclipse.
Aqui, eu fiz um teste de amostra para fazer login no Gmail e inserir nome de usuário e senha
public class GridExample { @Test public void mailTest() throws MalformedURLException{ DesiredCapabilities dr=null; if(browserType.equals('firefox')){ dr=DesiredCapabilities.firefox(); dr.setBrowserName('firefox'); dr.setPlatform(Platform.WINDOWS); }else{ dr=DesiredCapabilities.internetExplorer(); dr.setBrowserName('iexplore'); dr.setPlatform(Platform.WINDOWS); } RemoteWebDriver driver=new RemoteWebDriver(new URL('http://localhost:4444/wd/hub'), dr); driver.navigate().to('http://gmail.com'); driver.findElement(By.xpath('//input(@id='Email')')) .sendKeys('username'); driver.findElement(By.xpath('//input(@id='Passwd')')) .sendKeys('password'); driver.close(); }
Como no exemplo, você deve usar o RemoteWebDriver se estiver usando o GRID e fornecer recursos ao navegador. Você deve configurar o navegador e a plataforma conforme descrito acima.
Neste exemplo, usei a plataforma como WINDOWS. Você pode usar qualquer plataforma de acordo com sua necessidade.
Uma versão do navegador também pode ser definida usando dr.setVersion (“version”)
Por exemplo, você precisa executar este teste em série em vários navegadores, você deve configurar seu testng.xml. Abaixo está o conjunto testng.XML para o teste acima para executar seu teste em série.
Para executar o teste paralelo, você deve alterar seu testng.xml como abaixo.
Aqui no testng.XML você deve especificar o parâmetro como paralela = “Testes” e contagem de fios = '3' descreve o número máximo de threads a serem executados em paralelo.
Configuração usando arquivo JSON
A grade também pode ser iniciada junto com sua configuração usando um arquivo de configuração JSON.
Crie um arquivo JSON para ter a configuração abaixo. Aqui eu criei um arquivo JSON chamado grid_hub.json
{ 'host': null, 'port': 4444, 'newSessionWaitTimeout': -1, 'servlets' : (), 'prioritizer': null, 'capabilityMatcher': 'org.openqa.grid.internal.utils.DefaultCapabilityMatcher', 'throwOnCapabilityNotPresent': true, 'nodePolling': 5000, 'cleanUpCycle': 5000, 'timeout': 300000, 'maxSession': 5 }
Inicie o hub usando o comando abaixo
java -jar selenium-server-standalone-2.41.0.jar -role hub –hubConfig grid_hub.json
Da mesma forma, crie um arquivo json diferente para nós diferentes de acordo com a configuração necessária.
Aqui está um exemplo de arquivo de configuração JSON para o nó denominado como grid_node.json
{ 'capabilities': ( { 'browserName': 'chrome', 'maxInstances': 2 }, { 'browserName': 'firefox', 'maxInstances': 2 }, { 'browserName': 'internet explorer', 'maxInstances': 1 } ), 'configuration': { 'nodeTimeout':120, 'port':5555, 'hubPort':4444, 'hubHost':'localhost', 'nodePolling':2000, 'registerCycle':10000, 'register':true, 'cleanUpCycle':2000, 'timeout':30000, 'maxSession':5, } }
Para iniciar o nó
java -jar selenium-server-standalone-2.41.0.jar -role rc –nodeConfig grid_node.json
Você pode alterar todas as configurações de um navegador, maxInstances, porta, maxSession etc. no arquivo JSON.
Você pode fornecer a versão do navegador, a plataforma no arquivo de configuração JSON como abaixo:
{
“BrowserName”: “chrome”, ”version”: ”8”, ”platform”: ”Windows”
}
Conclusão
É aconselhável use o Selenium Grid quando precisar realizar testes em vários navegadores e tiver um grande número de casos de teste.
Neste módulo, abordamos como configurar o hub e os nós do Grid, além de como executar os casos de teste do Grid usando testng.XML e arquivo JSON.
Próximo tutorial nº 30 : Teste de automação com ferramenta Selenium e Cucumber . Pepino é um teste BDD ferramenta e estrutura. Aprenderemos os recursos da ferramenta Cucumber e seu uso em cenários em tempo real, incluindo como integrar Selenium WebDriver com Cucumber .
Por favor, poste suas dúvidas relacionadas ao Selenium Grid nos comentários abaixo.
Leitura recomendada
- Tutorial do Docker Selenium: como integrar a grade do Selenium com o Docker
- Teste de automação usando a ferramenta Cucumber e Selenium - Selenium Tutorial # 30
- Tutorial Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Spock para integração e teste funcional com selênio
- Tutoriais detalhados do Eclipse para iniciantes
- Introdução ao Selenium WebDriver - Selenium Tutorial # 8
- Geb Tutorial - Teste de automação de navegador usando a ferramenta Geb
- Tutorial do Parrot QA: revisão da ferramenta de teste funcional em vários navegadores