Este documento descreve como criar uma "grid" para execução paralela de testes automatizados usando o Appium. A grid conecta vários dispositivos móveis a um único controlador para permitir que testes sejam executados simultaneamente em diferentes dispositivos, melhorando a cobertura e reduzindo o tempo de execução. O documento discute os desafios da fragmentação de plataformas, como configurar o Selenium Grid e nós, e como escrever testes para aproveitar a execução paralela.
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
Criando uma grid para execução de testes paralelo com Appium
1. Criando uma grid (device farm)
para execução de teste paralelo
com Appium
Elias Nogueira QA Engineer | Agile Coach, Sicredi
@eliasnogueira
http://eliasnogueira.com
8. Diversas frentes para testar
https://www.ministryoftesting.com/2012/06/getting-started-with-mobile-testing-a-mindmap/
9. Definir o trabalho em conjunto com um processo
http://www.softwaretestingclass.com/introduction-to-mobile-application-testing/
10. Criando uma grid para
execução de teste
automatizado funcional e e2e
11. • 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...
12. 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?
13. • 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?
15. • 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
• Minimizar o tempo de execução de teste
Benefícios do Teste em Paralelo
16. • 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
17. • 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
18. 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
27. • Use sempre uma máquina Linux
• Boa prática reiniciar o ADB em uma execução paralela
• Para device reais, use um hub USB energizado
• [Appium] Use o selenium-server < 3.8
• O Appium ainda não está suportando totalmente o protocolo no W3C
• Exception apresentada: CapabilityNotPresentOnTheGridException
Minhas recomendações