Criando uma grid para execução de teste automatizado funcional e e2e

Elias Nogueira
Elias NogueiraLead Software Engineer at Waes
Criando uma grid para
execução de teste
automatizado funcional e e2e
Elias Nogueira QA Engineer | Agile Coach, Sicredi
@eliasnogueira
http://eliasnogueira.com
• Execução automatizada de teste é feita ”um a um”
• Não há uma rápida resposta à cobertura de restrições
• Fabricante
• Tamanho de tela
• Versão de plataforma
O problema...
Grid
Grid é uma forma de conectar todos os seus dispositivos em um
único controlador (hub).
Cada dispositivo deve ser gerenciado pelo seu serial/udid
Execução na grid
No script de teste devemos informar para qual dispositivo
(serial/udid) queremos executar o teste
Execução paralela
Uma execução paralela é aquela onde os testes selecionados são
executados em mais de um dispositivo na grid ao mesmo tempo
Como funciona um grid?
• A máquina que gerencia as execuções é chamada de hub
• As máquinas (dispositivos) que receberão o teste são
chamadas de nó
• Os nós devem se registrar no hub com uma série de
informações
Como funciona um grid?
Arquitetura base de um grid
Script de Teste
Nó 01 Nó 02
HUB
• Validação de suporte a outros idiomas
• Validação em diferentes versões de plataforma
• Validação em diferentes resoluções
• Validações em diferentes fabricantes
Benefícios do Teste em Paralelo
• Selenium Server [1]
• Instalação do Appium via npm [2]
• Dispositivos emulados ou reais
• Script de Teste com:
• Suporte a execução paralela (TestNG)
• Arquitetura de teste que suporte a execução paralela
• Criação do driver (execução no dispositivo sob demanda)
O que eu preciso?
[1] http://www.seleniumhq.org/download/#mainContent
[2] https://www.npmjs.com/package/appium
• Iniciar Selenium Grid como role hub
• Iniciar os nós (dispositivos)
• Apontando para a URL e porta da GRID
• Com portas do Appium (-p) e Bootstrap (-bp) diferentes dos demais
• Informando o udid do dispositivo
Passos para iniciar a Grid
Arquitetura base de um grid
Script de Teste
TestNG
Selenium GRID
http://192.168.1.31:4444
Nó 01
http://192.168.1.34:4723
Nó 02
http://192.168.1.35:4724
registra na grid ->
<- executa teste
arquivo .json arquivo .json
registra na grid ->
<- executa teste
Informar alvos (nomes
dispositivos) para execução
$ java -jar selenium-server-standalone-3.5.2.jar -role hub -hubConfig grid.json
Iniciando a grid
{
"port": 4444,
"newSessionWaitTimeout": -1,
"servlets" : [],
"withoutServlets": [],
"custom": {},
"capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
"throwOnCapabilityNotPresent": true,
"cleanUpCycle": 2000,
"role": "hub",
"debug": false,
"browserTimeout": 0,
"timeout": 1800
}
grid.json
$ appium --nodeconfig json/android-6.json -p 4723 -bp 5523 -U emulator-5554
Iniciando um nó
{
"capabilities":
[
{
"browserName":"Android Marshmallow",
"version":"6.0",
"platform":"ANDROID",
"maxInstances": 1
}
],
"configuration":
{
"cleanUpCycle":2000,
"timeout":20000,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"url": "http://127.0.0.1:4723/wd/hub",
"host": "127.0.0.1",
"port": 4723,
"maxSession": 1,
"register": true,
"registerCycle": 1000,
"hubPort": 4444,
"hubHost": "192.168.0.102",
"session-override": true
}
}
android-6.json
Script de Teste + Suíte paralela
Script de Teste
private AppiumDriver<?> driver;
@Test
@Parameters( { "platform", "udid", "platformVersion"})
public void testCalculateDefaultTip(String platform, String udid, String platformVersion) throws Exception {
driver = Utils.returnDriver(platform, udid, platformVersion);
MainScreenPageObject mainScreen = new MainScreenPageObject(driver);
mainScreen.fillBillAmount("100");
mainScreen.clickCalculateTip();
<test name="Android-AVD">
<parameter name="platform" value="android"/>
<parameter name="udid" value="emulator-5554"/>
<parameter name="platformVersion" value="7.0"/>
<classes>
<class name="com.eliasnogueira.unique_script.TipTest"/>
</classes>
</test>
Executor Gird
• Use sempre uma máquina Linux
• Boa prática reiniciar o ADB em uma execução paralela
• Para devices reais, use um hub USB energizado
Minhas recomendações
Hora do truque...
Obrigado
@eliasnogueira
http://eliasnogueira.com
https://slideshare.net/elias.nogueira
https://facebook.com/elias.nogueira.teste
https://github.com/eliasnogueira/appium-parallel-execution
1 of 15

Recommended

Testes de ponta a ponta by
Testes de ponta a pontaTestes de ponta a ponta
Testes de ponta a pontaElias Nogueira
1.4K views33 slides
A Importância do Teste Continuo by
A Importância do Teste ContinuoA Importância do Teste Continuo
A Importância do Teste ContinuoElias Nogueira
1.3K views9 slides
Criando uma grid para execução de testes paralelo com Appium by
Criando uma grid para execução de testes paralelo com AppiumCriando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com AppiumElias Nogueira
1.4K views29 slides
Usando containers com auto-escala de testes by
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testesElias Nogueira
1.1K views22 slides
Ideais Cowabunga - Headless Testing com GhostDriver by
Ideais Cowabunga - Headless Testing com GhostDriverIdeais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverStefan Teixeira
1K views32 slides
Papel do QA na Transformação Ágil by
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilElias Nogueira
1.2K views23 slides

More Related Content

What's hot

Acelerando o feedback e deploy com Automação de Testes! by
Acelerando o feedback e deploy com Automação de Testes! Acelerando o feedback e deploy com Automação de Testes!
Acelerando o feedback e deploy com Automação de Testes! Elias Nogueira
1.3K views8 slides
Como criar e executar testes paralelos web usando Selenium e containers by
Como criar e executar testes paralelos web usando Selenium e containersComo criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersElias Nogueira
3.5K views27 slides
A importancia de testes em todos os aspectos by
A importancia de testes em todos os aspectosA importancia de testes em todos os aspectos
A importancia de testes em todos os aspectosElias Nogueira
360 views10 slides
Paralelize seus testes web e mobile para ter feedbacks mais rápidos by
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosElias Nogueira
704 views49 slides
O Testador Técnico by
O Testador TécnicoO Testador Técnico
O Testador TécnicoElias Nogueira
1.7K views18 slides
Cultura de testes em times mobile by
Cultura de testes em times mobileCultura de testes em times mobile
Cultura de testes em times mobileRamon Ribeiro Rabello
305 views51 slides

What's hot(20)

Acelerando o feedback e deploy com Automação de Testes! by Elias Nogueira
Acelerando o feedback e deploy com Automação de Testes! Acelerando o feedback e deploy com Automação de Testes!
Acelerando o feedback e deploy com Automação de Testes!
Elias Nogueira1.3K views
Como criar e executar testes paralelos web usando Selenium e containers by Elias Nogueira
Como criar e executar testes paralelos web usando Selenium e containersComo criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containers
Elias Nogueira3.5K views
A importancia de testes em todos os aspectos by Elias Nogueira
A importancia de testes em todos os aspectosA importancia de testes em todos os aspectos
A importancia de testes em todos os aspectos
Elias Nogueira360 views
Paralelize seus testes web e mobile para ter feedbacks mais rápidos by Elias Nogueira
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Elias Nogueira704 views
Automação de Teste para REST, Web e Mobile by Elias Nogueira
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e Mobile
Elias Nogueira3.6K views
Apenas um script de teste para iOS e Android by Elias Nogueira
Apenas um script de teste para iOS e AndroidApenas um script de teste para iOS e Android
Apenas um script de teste para iOS e Android
Elias Nogueira1.3K views
Automatizando uma app Híbrida by Elias Nogueira
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app Híbrida
Elias Nogueira1.5K views
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ... by tdc-globalcode
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
tdc-globalcode346 views
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps by tdc-globalcode
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpsTDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
tdc-globalcode439 views
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019) by Mayara Fernandes
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
Mayara Fernandes1.8K views
Tudo o que você precisa saber para começar a automação de testes em dispositi... by Elias Nogueira
Tudo o que você precisa saber para começar a automação de testes em dispositi...Tudo o que você precisa saber para começar a automação de testes em dispositi...
Tudo o que você precisa saber para começar a automação de testes em dispositi...
Elias Nogueira1.1K views
Automação de Teste em Front End - Caipira Ágil by Elias Nogueira
Automação de Teste em Front End - Caipira ÁgilAutomação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira Ágil
Elias Nogueira2.6K views
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io by tdc-globalcode
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.ioTDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
tdc-globalcode327 views
Testes E2E em Cypress com JS by Nàtali Cabral
Testes E2E em Cypress com JSTestes E2E em Cypress com JS
Testes E2E em Cypress com JS
Nàtali Cabral240 views
Acelere - e melhore! - o feedback com testes automatizados rápidos by Igor Abade
Acelere - e melhore! - o feedback com testes automatizados rápidosAcelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidos
Igor Abade969 views
Integração continua sem traumas by sabrinajn
Integração continua sem traumasIntegração continua sem traumas
Integração continua sem traumas
sabrinajn370 views

Similar to Criando uma grid para execução de teste automatizado funcional e e2e

Implementando uma Device Farm Android by
Implementando uma Device Farm AndroidImplementando uma Device Farm Android
Implementando uma Device Farm AndroidThialison Souza
108 views45 slides
Treinamento Android Embarcado by
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android EmbarcadoOdair Sousa
1.8K views356 slides
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ... by
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
178 views45 slides
Dashboard slides by
Dashboard slidesDashboard slides
Dashboard slidesDaniel Laurindo
148 views23 slides
NodeJS Under the Hood - Concurrency and Multithreading by
NodeJS Under the Hood - Concurrency and MultithreadingNodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingRhuan Karlus Silva
38 views35 slides
Testes para Android de ponta a ponta by
Testes para Android de ponta a pontaTestes para Android de ponta a ponta
Testes para Android de ponta a pontaElias Nogueira
1.5K views16 slides

Similar to Criando uma grid para execução de teste automatizado funcional e e2e(20)

Implementando uma Device Farm Android by Thialison Souza
Implementando uma Device Farm AndroidImplementando uma Device Farm Android
Implementando uma Device Farm Android
Thialison Souza108 views
Treinamento Android Embarcado by Odair Sousa
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android Embarcado
Odair Sousa1.8K views
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ... by tdc-globalcode
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
tdc-globalcode178 views
NodeJS Under the Hood - Concurrency and Multithreading by Rhuan Karlus Silva
NodeJS Under the Hood - Concurrency and MultithreadingNodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and Multithreading
Testes para Android de ponta a ponta by Elias Nogueira
Testes para Android de ponta a pontaTestes para Android de ponta a ponta
Testes para Android de ponta a ponta
Elias Nogueira1.5K views
CEPUG 2 - Bem-vindo a Framework CodeIgniter by Eric Silva
CEPUG 2 - Bem-vindo a Framework CodeIgniterCEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniter
Eric Silva1.8K views
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster by Edlaine Zamora
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Edlaine Zamora753 views
Testes Funcionais com Selenium by Mayron Cachina
Testes Funcionais com Selenium Testes Funcionais com Selenium
Testes Funcionais com Selenium
Mayron Cachina4.4K views
Implementando uma device farm android com Open STF - TDC BH 2019 by Rafael Amaral
Implementando uma device farm android com Open STF - TDC BH 2019Implementando uma device farm android com Open STF - TDC BH 2019
Implementando uma device farm android com Open STF - TDC BH 2019
Rafael Amaral402 views
JSF 2.0: Uma Evolução nas Interfaces Web com Java by Dr. Spock
JSF 2.0: Uma Evolução nas Interfaces Web com JavaJSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com Java
Dr. Spock2.3K views
Aplicando o poder de uma GPU no SQL Server by pichiliani
Aplicando o poder de uma GPU noSQL ServerAplicando o poder de uma GPU noSQL Server
Aplicando o poder de uma GPU no SQL Server
pichiliani1.9K views
Todas as abordagens de testes dentro do ágil by Elias Nogueira
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
Elias Nogueira5.7K views
Contribuições do projeto Azure Sphere para evolução dos padrões de segurança ... by Walter Coan
Contribuições do projeto Azure Sphere para evolução dos padrões de segurança ...Contribuições do projeto Azure Sphere para evolução dos padrões de segurança ...
Contribuições do projeto Azure Sphere para evolução dos padrões de segurança ...
Walter Coan23 views
TDC2016POA | Trilha Web - Realidade Virtual com WebVR by tdc-globalcode
TDC2016POA | Trilha Web -  Realidade Virtual com WebVRTDC2016POA | Trilha Web -  Realidade Virtual com WebVR
TDC2016POA | Trilha Web - Realidade Virtual com WebVR
tdc-globalcode296 views
Introdução à plataforma Android by Natanael Fonseca
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
Natanael Fonseca8.9K views

More from Elias Nogueira

Criando uma arquitetura para seus testes de API com RestAssured by
Criando uma arquitetura para seus testes de API com RestAssuredCriando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssuredElias Nogueira
2.3K views42 slides
API Testing following the Test Pyramid by
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test PyramidElias Nogueira
1.7K views51 slides
De a máxima cobertura nos seus testes de API by
De a máxima cobertura nos seus testes de APIDe a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de APIElias Nogueira
3.2K views37 slides
Automação e virtualização de serviços by
Automação e virtualização de serviçosAutomação e virtualização de serviços
Automação e virtualização de serviçosElias Nogueira
2.2K views53 slides
Coach por Imersão - Buscando a excelência técnica com o time by
Coach por Imersão - Buscando a excelência técnica com o timeCoach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o timeElias Nogueira
882 views22 slides
O Agile Coach pode (e muitas vezes deve) ser técnico by
O Agile Coach pode (e muitas vezes deve) ser técnicoO Agile Coach pode (e muitas vezes deve) ser técnico
O Agile Coach pode (e muitas vezes deve) ser técnicoElias Nogueira
714 views19 slides

More from Elias Nogueira(20)

Criando uma arquitetura para seus testes de API com RestAssured by Elias Nogueira
Criando uma arquitetura para seus testes de API com RestAssuredCriando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssured
Elias Nogueira2.3K views
API Testing following the Test Pyramid by Elias Nogueira
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test Pyramid
Elias Nogueira1.7K views
De a máxima cobertura nos seus testes de API by Elias Nogueira
De a máxima cobertura nos seus testes de APIDe a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de API
Elias Nogueira3.2K views
Automação e virtualização de serviços by Elias Nogueira
Automação e virtualização de serviçosAutomação e virtualização de serviços
Automação e virtualização de serviços
Elias Nogueira2.2K views
Coach por Imersão - Buscando a excelência técnica com o time by Elias Nogueira
Coach por Imersão - Buscando a excelência técnica com o timeCoach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o time
Elias Nogueira882 views
O Agile Coach pode (e muitas vezes deve) ser técnico by Elias Nogueira
O Agile Coach pode (e muitas vezes deve) ser técnicoO Agile Coach pode (e muitas vezes deve) ser técnico
O Agile Coach pode (e muitas vezes deve) ser técnico
Elias Nogueira714 views
Create an architecture for web test automation by Elias Nogueira
Create an architecture for web test automationCreate an architecture for web test automation
Create an architecture for web test automation
Elias Nogueira1.3K views
Como 4 Agile Coaches trabalham em uma Transformação Ágil by Elias Nogueira
Como 4 Agile Coaches trabalham em uma Transformação Ágil Como 4 Agile Coaches trabalham em uma Transformação Ágil
Como 4 Agile Coaches trabalham em uma Transformação Ágil
Elias Nogueira810 views
BDD não é automação de teste - Scrum Gathering by Elias Nogueira
BDD não é automação de teste - Scrum GatheringBDD não é automação de teste - Scrum Gathering
BDD não é automação de teste - Scrum Gathering
Elias Nogueira4.1K views
Improve Yourself -- Learn the Skills, Join the Community - Tests by Elias Nogueira
Improve Yourself -- Learn the Skills, Join the Community - TestsImprove Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - Tests
Elias Nogueira376 views
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p... by Elias Nogueira
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Elias Nogueira1.2K views
BDD não é Automação de Testes by Elias Nogueira
BDD não é Automação de TestesBDD não é Automação de Testes
BDD não é Automação de Testes
Elias Nogueira5.3K views
Como ter sucesso ministrando uma palestra técnica by Elias Nogueira
Como ter sucesso ministrando uma palestra técnicaComo ter sucesso ministrando uma palestra técnica
Como ter sucesso ministrando uma palestra técnica
Elias Nogueira594 views
Quais são os steps de que deve conter na sua pipeline? by Elias Nogueira
Quais são os steps de que deve conter na sua pipeline?Quais são os steps de que deve conter na sua pipeline?
Quais são os steps de que deve conter na sua pipeline?
Elias Nogueira391 views
Testes em todos os niveis de planejamento by Elias Nogueira
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamento
Elias Nogueira644 views
Java Test Automation for REST, Web and Mobile by Elias Nogueira
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and Mobile
Elias Nogueira1.6K views
Trust Your Pipeline - Automatically Testing and End-to-End Java Application by Elias Nogueira
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationTrust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
Elias Nogueira972 views

Criando uma grid para execução de teste automatizado funcional e e2e

  • 1. Criando uma grid para execução de teste automatizado funcional e e2e Elias Nogueira QA Engineer | Agile Coach, Sicredi @eliasnogueira http://eliasnogueira.com
  • 2. • Execução automatizada de teste é feita ”um a um” • Não há uma rápida resposta à cobertura de restrições • Fabricante • Tamanho de tela • Versão de plataforma O problema...
  • 3. Grid Grid é uma forma de conectar todos os seus dispositivos em um único controlador (hub). Cada dispositivo deve ser gerenciado pelo seu serial/udid Execução na grid No script de teste devemos informar para qual dispositivo (serial/udid) queremos executar o teste Execução paralela Uma execução paralela é aquela onde os testes selecionados são executados em mais de um dispositivo na grid ao mesmo tempo Como funciona um grid?
  • 4. • A máquina que gerencia as execuções é chamada de hub • As máquinas (dispositivos) que receberão o teste são chamadas de nó • Os nós devem se registrar no hub com uma série de informações Como funciona um grid?
  • 5. Arquitetura base de um grid Script de Teste Nó 01 Nó 02 HUB
  • 6. • Validação de suporte a outros idiomas • Validação em diferentes versões de plataforma • Validação em diferentes resoluções • Validações em diferentes fabricantes Benefícios do Teste em Paralelo
  • 7. • Selenium Server [1] • Instalação do Appium via npm [2] • Dispositivos emulados ou reais • Script de Teste com: • Suporte a execução paralela (TestNG) • Arquitetura de teste que suporte a execução paralela • Criação do driver (execução no dispositivo sob demanda) O que eu preciso? [1] http://www.seleniumhq.org/download/#mainContent [2] https://www.npmjs.com/package/appium
  • 8. • Iniciar Selenium Grid como role hub • Iniciar os nós (dispositivos) • Apontando para a URL e porta da GRID • Com portas do Appium (-p) e Bootstrap (-bp) diferentes dos demais • Informando o udid do dispositivo Passos para iniciar a Grid
  • 9. Arquitetura base de um grid Script de Teste TestNG Selenium GRID http://192.168.1.31:4444 Nó 01 http://192.168.1.34:4723 Nó 02 http://192.168.1.35:4724 registra na grid -> <- executa teste arquivo .json arquivo .json registra na grid -> <- executa teste Informar alvos (nomes dispositivos) para execução
  • 10. $ java -jar selenium-server-standalone-3.5.2.jar -role hub -hubConfig grid.json Iniciando a grid { "port": 4444, "newSessionWaitTimeout": -1, "servlets" : [], "withoutServlets": [], "custom": {}, "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher", "throwOnCapabilityNotPresent": true, "cleanUpCycle": 2000, "role": "hub", "debug": false, "browserTimeout": 0, "timeout": 1800 } grid.json
  • 11. $ appium --nodeconfig json/android-6.json -p 4723 -bp 5523 -U emulator-5554 Iniciando um nó { "capabilities": [ { "browserName":"Android Marshmallow", "version":"6.0", "platform":"ANDROID", "maxInstances": 1 } ], "configuration": { "cleanUpCycle":2000, "timeout":20000, "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", "url": "http://127.0.0.1:4723/wd/hub", "host": "127.0.0.1", "port": 4723, "maxSession": 1, "register": true, "registerCycle": 1000, "hubPort": 4444, "hubHost": "192.168.0.102", "session-override": true } } android-6.json
  • 12. Script de Teste + Suíte paralela Script de Teste private AppiumDriver<?> driver; @Test @Parameters( { "platform", "udid", "platformVersion"}) public void testCalculateDefaultTip(String platform, String udid, String platformVersion) throws Exception { driver = Utils.returnDriver(platform, udid, platformVersion); MainScreenPageObject mainScreen = new MainScreenPageObject(driver); mainScreen.fillBillAmount("100"); mainScreen.clickCalculateTip(); <test name="Android-AVD"> <parameter name="platform" value="android"/> <parameter name="udid" value="emulator-5554"/> <parameter name="platformVersion" value="7.0"/> <classes> <class name="com.eliasnogueira.unique_script.TipTest"/> </classes> </test> Executor Gird
  • 13. • Use sempre uma máquina Linux • Boa prática reiniciar o ADB em uma execução paralela • Para devices reais, use um hub USB energizado Minhas recomendações