SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
contato@qualister.com.br
(48) 3285-5615
twitter.com/qualister
facebook.com/qualister
linkedin.com/company/qualister
Testes	
  para	
  
Disposi,vos	
  Móveis	
  
	
  
Elias	
  Nogueira	
  
@eliasnogueira	
  
Elias	
  Nogueira	
  	
  <elias.nogueira@qualister.com.br>	
  
	
  Consultor	
  de	
  Teste	
  e	
  Qualidade	
  de	
  so0ware	
  na	
  Qualister	
  
Professor	
  de	
  Pós	
  Graduação	
  na	
  Unisinos/RS	
  e	
  Uniasselvi/SC	
  
eliasnogueira	
  
qualister.com.br	
  
br.linkedin.com/in/eliasnogueira	
  
youtube.com/user/qualistervideos	
  
Palestrante	
  
Qualister	
  
•  Fundada	
  em	
  2007	
  
•  Mais	
  de	
  1.000	
  clientes	
  em	
  todo	
  o	
  Brasil	
  
•  Mais	
  de	
  50	
  cursos	
  sobre	
  teste	
  de	
  so0ware	
  
•  Mais	
  de	
  3.000	
  alunos	
  formados	
  
•  Áreas	
  de	
  atuação:	
  
•  Consultoria	
  na	
  área	
  de	
  teste	
  qualidade	
  de	
  so0ware	
  
•  Cursos	
  
•  Revenda	
  de	
  ferramentas	
  
Mais	
  de	
  1.000	
  clientes	
  
Parcerias	
  internacionais	
  
Tipos	
  de	
  Aplicações	
  
Neste	
  tópico	
  aprenderemos	
  sobre	
  os	
  diferentes	
  Spos	
  de	
  
apps	
  para	
  disposiSvos	
  móveis	
  
Tipos	
  de	
  Apps	
  Mobile	
  
HTML/Browser Híbridas Nativas
Diferentes	
  Tipos	
  de	
  Apps	
  
Nativo iOS Híbrida Nativo Android
Desafios	
  de	
  Testes	
  
Neste	
  tópico	
  iremos	
  ilustrar	
  quais	
  são	
  os	
  desafios	
  para	
  
testar	
  em	
  plataformas	
  e	
  o	
  desafio	
  de	
  testes	
  nas	
  apps.	
  
Desafios	
  -­‐	
  Plataformas	
  
Desafios	
  -­‐	
  Plataformas	
  
Fragmentação	
  das	
  plataformas	
  
[redução]	
  9	
  para	
  2	
  possibilidades	
  
Versões	
  mais	
  uSlizadas:	
  hp://developer.android.com/about/dashboards/	
  	
  
Versão	
   Codenome	
   API	
   Distribuição	
  
2.2	
   Froyo	
   8	
   0.3%	
  
2.3.3	
  
2.3.7	
  
Gingerbread	
  
10	
   4.6%	
  
4.0.3	
  
4.0.4	
  
Ice	
  Cream	
  
Sandwich	
  
15	
   4.1%	
  
4.1.x	
  
Jelly	
  Bean	
  
16	
   13.0%	
  
4.2.x	
   17	
   15.9%	
  
4.3	
   18	
   4.7%	
  
4.4	
   KitKat	
   19	
   39.3%	
  
5.0	
  
Lollipop	
  
21	
   15.5%	
  
5.1	
   22	
   2.6	
  
Desafios	
  -­‐	
  Plataformas	
  
Fragmentação	
  das	
  plataformas	
  
1	
  (iphone)	
  +	
  1	
  (iPad)	
  possibilidades	
  
Versões	
  mais	
  uSlizadas:	
  hps://developer.apple.com/support/appstore/	
  
Matriz	
  de	
  versões:	
  hp://iossupportmatrix.com/	
  
Desafios	
  -­‐	
  DisposiSvos	
  
Fragmentação	
  de	
  Disposi,vos	
  
	
  
Android	
  
•  Mais	
  de	
  24.903	
  disposiSvos	
  disSntos	
  
•  Diferentes	
  fabricantes:	
  Samsung,	
  Motorola,	
  HTC,	
  LG,	
  Sony,	
  
Samsung	
  (38%)	
  
iPhone	
  
•  5	
  disposiSvos	
  usados	
  no	
  mercado	
  (4S,	
  5,	
  5c,	
  5s,	
  6)	
  
•  5	
  disposiSvos	
  suportados	
  oficialmente	
  (5s,	
  6,	
  6	
  plus,	
  6s,	
  6s	
  plus)	
  
•  Mais	
  uSlizados	
  4s,	
  5,	
  5s	
  e	
  6	
  
	
  
http://opensignal.com/reports/2015/08/android-fragmentation/
Desafios	
  -­‐	
  DisposiSvos	
  
Tamanho	
  de	
  Tela	
  
	
  
	
  
Desafios	
  -­‐	
  Execução	
  
Emuladores	
   Cloud	
  TesSng	
   DisposiSvo	
  Real	
  
•  Muitos	
  apps	
  podem	
  ser	
  
testados	
  em	
  emuladores	
  
sem	
  o	
  invesSmento	
  de	
  
hardware	
  (smartphones)	
  
•  A	
  grande	
  maioria	
  é	
  free	
  e	
  
empresas	
  disponibilizam	
  
seus	
  emuladores	
  
•  Os	
  disposiSvos	
  podem	
  ser	
  
acessadas	
  via	
  web	
  
•  A	
  aplicação	
  pode	
  ser	
  
instalada,	
  testada	
  e	
  
gerenciada	
  
•  É	
  segura	
  para	
  as	
  aSvidades	
  
de	
  teste	
  
•  Vai	
  trazer	
  resultados	
  mais	
  
realísScos	
  
•  Todas	
  as	
  possibilidades	
  de	
  
teste	
  poderão	
  ser	
  executadas	
  
incluindo	
  as	
  com	
  dependência	
  
de	
  hardware	
  
Como	
  resolver	
  estes	
  desafios?	
  
•  Obter	
  estaSsScamente	
  os	
  disposiSvos	
  mais	
  
uSlizados	
  
•  Logs	
  do	
  Console	
  de	
  Desenvolvedor	
  
•  Relato	
  de	
  erros	
  de	
  usuários	
  
•  Volume	
  de	
  vendas	
  dos	
  disposiSvos	
  
Um	
  pista...	
  
http://www.tecmundo.com.br/pesquisa/78400-20-smartphones-mais-usados-brasil-leitores-tecmundo-2015.htm
Pirâmide	
  de	
  Automação	
  de	
  Teste	
  
É	
  importante	
  automaSzar	
  todos	
  os	
  níveis	
  da	
  app	
  
Ferramentas	
  
Existem	
  diversas	
  ferramentas	
  para	
  automação	
  de	
  
testes	
  em	
  UI	
  para	
  Android	
  e	
  iOS	
  
Appium	
   hp://appium.io/	
  
selendroid	
   hp://selendroid.io/	
  
Robo,um	
   hps://code.google.com/p/roboSum/	
  
calabash-­‐andorid	
   hps://github.com/calabash/calabash-­‐android	
  
MonkeyTalk	
   hps://www.cloudmonkeymobile.com/monkeytalk	
  
Espresso	
   hps://code.google.com/p/android-­‐test-­‐kit/wiki/Espresso	
  
UiAutomator	
  
hps://developer.android.com/tools/tesSng-­‐support-­‐
library/index.html#UIAutomator	
  
http://www.qualister.com.br/blog/comparativo-de-ferramentas-para-automacao-de-teste-em-android
Ferramentas	
  
Existem	
  diversas	
  ferramentas	
  para	
  automação	
  de	
  
testes	
  em	
  UI	
  para	
  Android	
  e	
  iOS	
  
Robo,um	
   UiAutomator	
   Espresso	
   Calabash	
   Appium	
  
Mobile	
  Web	
   Sim	
  
(Android)	
  
Não	
   Não	
  
Sim	
  
(Android)	
  
Sim	
  
(iOS	
  e	
  Android)	
  
Linguagem	
   Java	
   Java	
   Java	
   Ruby	
   Muitas	
  
Ferramenta	
  
para	
  criação	
  
de	
  teste	
  
RoboSum	
  
Recorder	
  
UiAutomatorViewer	
  
Hierarchy	
  
Viewer	
  
CLI	
   Appium.app	
  
UiAutomatorViewer	
  
APIs	
  
suportadas	
  
Todas	
   >=16	
   8,10,15-­‐19	
   Todas	
   Todas	
  
Comunidade	
   Contributors	
   Google	
   Google	
   Pequena	
   ASva	
  
Introdução	
  a	
  Appium	
  
Appium	
  é	
  uma	
  ferramenta	
  open	
  source	
  para	
  
automaSzar:	
  
	
  
•  Aplicações	
  mobile	
  naSvas	
  ou	
  híbridas	
  para	
  iOS,	
  Android	
  
•  Aplicações	
  web	
  mobile	
  para	
  os	
  browsers	
  naSvos	
  do	
  iOS,	
  	
  
Android	
  ou	
  Google	
  Chrome	
  
Introdução	
  a	
  Appium	
  
Appium	
  também	
  é	
  mulS-­‐plataforma,	
  ou	
  seja,	
  
podemos	
  escrever	
  um	
  único	
  código	
  que	
  executa	
  
em	
  iOS,	
  Android	
  usando	
  a	
  mesma	
  API	
  
Arquitetura	
  
WebDriver	
  Interface	
  
Json	
  Wired	
  Protocol	
  
Android	
  (4.2+)	
  	
  
UiAutomator	
  
iOS	
  (até	
  8.1)	
  
UIAutomator	
  
Selendroid	
  (<2.3+)	
  
InstrumetaSon	
  (para	
  disposiSvos	
  anSgos)	
  
Design	
  
•  O	
  Appium,	
  na	
  verdade,	
  é	
  um	
  HTTP	
  Server	
  que	
  
cria	
  e	
  gerencia	
  sessões	
  do	
  WebDriver	
  
•  O	
  WebDriver	
  é	
  hoje	
  um	
  padrão	
  W3C	
  para	
  
automação	
  de	
  teste	
  web	
  
•  O	
  Appium	
  inicia	
  um	
  “caso	
  de	
  teste	
  /	
  script”	
  que	
  
inicia	
  um	
  servidor	
  de	
  teste	
  e	
  espera	
  os	
  
comandos	
  enviados	
  por	
  ele	
  para	
  o	
  disposiSvo	
  
Conceito	
  
Arquitetura	
  Cliente/Servidor	
  
	
  
•  Appium	
  é	
  um	
  servidor	
  web	
  que	
  expõe	
  uma	
  API	
  REST	
  
•  Ele	
  recebe	
  conexões	
  de	
  um	
  cliente,	
  espera	
  por	
  
comandos,	
  executa	
  os	
  comandos	
  em	
  um	
  disposiSvo	
  
móvel	
  e	
  responde	
  com	
  uma	
  resposta	
  HTTP	
  com	
  o	
  
resultado	
  do	
  comando	
  
•  Com	
  isso	
  podemos	
  ter	
  diferentes	
  linguagens	
  de	
  
programação	
  para	
  escrever	
  os	
  testes	
  e	
  rodar	
  os	
  testes	
  
em	
  máquinas	
  totalmente	
  separadas	
  
Conceito	
  
Sessão	
  
	
  
•  Toda	
  a	
  comunicação	
  com	
  um	
  disposiSvo	
  é	
  aberta	
  
através	
  de	
  uma	
  sessão	
  (session)	
  para	
  cada	
  biblioteca	
  
(linguagem)	
  uSlizada	
  
•  Esta	
  requisição	
  é	
  um	
  POST	
  com	
  um	
  objeto	
  JSON	
  
enviando	
  as	
  capacidades	
  desejadas	
  (Desired	
  
Capabili>es)	
  
•  Neste	
  ponto	
  o	
  servidor	
  responde	
  com	
  um	
  ID	
  de	
  sessão	
  
e	
  passa	
  a	
  receber	
  comandos	
  (requests)	
  por	
  esse	
  ID	
  
entre	
  o	
  servidor	
  e	
  o	
  disposiSvo	
  
Conceito	
  
Desired	
  Capabili,es	
  
	
  
•  É	
  um	
  conjunto	
  de	
  comandos	
  enviados	
  para	
  os	
  servidor	
  
com	
  capacidades	
  específicas	
  para	
  cada	
  sessão	
  
•  Com	
  ela	
  podemos	
  informar	
  que	
  desejamos	
  uma	
  sessão	
  
(disposiSvo)	
  que	
  seja	
  um	
  IOS	
  ou	
  Android,	
  e	
  até	
  mesmo	
  
especificar	
  a	
  versão	
  de	
  ambos	
  
Conceito	
  
Appium	
  Server	
  
	
  
•  É	
  um	
  servidor	
  escrito	
  em	
  node.js	
  que	
  pode	
  ser	
  instalado	
  
via	
  NPM	
  ou	
  como	
  uma	
  aplicação	
  para	
  o	
  Sistema	
  
Operacional	
  
•  Com	
  ele	
  instalado	
  no	
  Sistema	
  Operacional	
  poderemos	
  
ter	
  diversas	
  funções,	
  como	
  inspeção	
  e	
  testes	
  de	
  
comandos	
  no	
  disposiSvo	
  
•  O	
  Appium.app,	
  aplicação	
  desktop,	
  já	
  tem	
  o	
  node.js	
  
embuSdo	
  para	
  a	
  	
  execução	
  do	
  servidor	
  do	
  Appium	
  
Conceito	
  
Appium	
  Client	
  
	
  
•  São	
  as	
  bibliotecas	
  para	
  que	
  possamos	
  escrever	
  os	
  
testes	
  em	
  diferentes	
  linguagens	
  de	
  programação	
  
suportadas	
  
Dispositivo
Script de Teste
Execução	
  Local	
  (localhost)	
  
Appium	
  Server	
  
AppiumDriver	
  
Desired	
  
Capabilites	
  
Caso	
  de	
  Teste	
  
4723	
  
Appium DesiredCapabilities
http://localhost:4723/wd/hub
Sessão	
  
Script	
  
Dinâmica	
  
Neste	
  tópico	
  falaremos	
  sobre	
  a	
  dinâmica	
  de	
  automação	
  
com	
  o	
  Appium	
  
Dinâmica	
  
A	
  seguinte	
  dinâmica	
  será	
  adotada:	
  
	
  
•  Apresentação	
  de	
  cada	
  ponto	
  sobre	
  Appium	
  
•  Instalação	
  da	
  app	
  
•  Inserção	
  das	
  DesiredCapabili>es	
  
•  Inserção	
  da	
  interação	
  com	
  a	
  app	
  
•  Inserção	
  das	
  validações	
  
•  Execução	
  do	
  script	
  
•  Exercício(s)	
  
	
  
Passos	
  de	
  Automação	
  
Nós	
  executaremos	
  os	
  seguintes	
  passos	
  para	
  automaSzar	
  
os	
  testes:	
  
	
  
1.  Executar	
  o	
  teste	
  manualmente	
  no	
  disposiSvo	
  
2.  Desenvolver	
  o	
  script	
  
1.  Informar	
  a	
  app	
  que	
  será	
  testada	
  
2.  Informar	
  as	
  capacidades	
  
3.  Criar	
  a	
  conexão	
  com	
  Appium	
  
4.  Desenvolver	
  o	
  script	
  (interação	
  com	
  os	
  componentes)	
  
5.  Colocar	
  as	
  validações	
  
3.  Executando	
  o	
  script	
  automaSzado	
  
1.  Abrir	
  e	
  iniciar	
  o	
  Appium.app	
  
2.  Executar	
  o	
  script	
  de	
  teste	
  
O	
  Projeto	
  completo	
  está	
  no	
  GitHub	
  
hps://github.com/qualister-­‐consultoria/
workshop-­‐appium-­‐android	
  
contato@qualister.com.br
(48) 3285-5615
twitter.com/qualister
facebook.com/qualister
linkedin.com/company/qualister

Mais conteúdo relacionado

Mais procurados

Testes em Web Services - conceitos e ferramentas
Testes em Web Services - conceitos e ferramentasTestes em Web Services - conceitos e ferramentas
Testes em Web Services - conceitos e ferramentasQualister
 
Teste performance carga stress jmeter
Teste performance carga stress jmeterTeste performance carga stress jmeter
Teste performance carga stress jmeterCristiano Caetano
 
Palestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-AssuredPalestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-AssuredQualister
 
Testes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeterTestes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeterQualister
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwareJúlio de Lima
 
Palestra sobre automação de testes em APIs Rest com Rest-Assured
Palestra sobre automação de testes em APIs Rest com Rest-AssuredPalestra sobre automação de testes em APIs Rest com Rest-Assured
Palestra sobre automação de testes em APIs Rest com Rest-AssuredJúlio de Lima
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de softwareQualister
 
Medindo a performance de aplicações web com JMeter
Medindo a performance de aplicações web com JMeterMedindo a performance de aplicações web com JMeter
Medindo a performance de aplicações web com JMeterJúlio de Lima
 
Perspectivas em teste de software
Perspectivas em teste de softwarePerspectivas em teste de software
Perspectivas em teste de softwareQualister
 
Automação de Teste para REST, Web e Mobile
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 MobileElias Nogueira
 
Teste software metodos metodologia ageis agil agile testing
Teste software metodos metodologia ageis agil agile testingTeste software metodos metodologia ageis agil agile testing
Teste software metodos metodologia ageis agil agile testingQualister
 
Juntando para multiplicar
Juntando para multiplicarJuntando para multiplicar
Juntando para multiplicarQualister
 
Palestra Automação de Testes em Dispositivos Móveis na Nuvem (BRATESTE2013)
Palestra Automação de Testes em Dispositivos Móveis na Nuvem (BRATESTE2013)Palestra Automação de Testes em Dispositivos Móveis na Nuvem (BRATESTE2013)
Palestra Automação de Testes em Dispositivos Móveis na Nuvem (BRATESTE2013)Júlio de Lima
 
Curso treinamento automação de testes com selenium
Curso treinamento automação de testes com seleniumCurso treinamento automação de testes com selenium
Curso treinamento automação de testes com seleniumCristiano Caetano
 
InterCon - Automatizando Visual Regression Testing
InterCon - Automatizando Visual Regression TestingInterCon - Automatizando Visual Regression Testing
InterCon - Automatizando Visual Regression TestingSamanta Cicilia
 
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e WebdriverJúlio de Lima
 
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driverJúlio de Lima
 
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e VerdadesElias Nogueira
 
Automacao testes automatizados
Automacao testes automatizadosAutomacao testes automatizados
Automacao testes automatizadosCristiano Caetano
 

Mais procurados (20)

Testes em Web Services - conceitos e ferramentas
Testes em Web Services - conceitos e ferramentasTestes em Web Services - conceitos e ferramentas
Testes em Web Services - conceitos e ferramentas
 
Teste performance carga stress jmeter
Teste performance carga stress jmeterTeste performance carga stress jmeter
Teste performance carga stress jmeter
 
Palestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-AssuredPalestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-Assured
 
Testes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeterTestes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeter
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de Software
 
Palestra sobre automação de testes em APIs Rest com Rest-Assured
Palestra sobre automação de testes em APIs Rest com Rest-AssuredPalestra sobre automação de testes em APIs Rest com Rest-Assured
Palestra sobre automação de testes em APIs Rest com Rest-Assured
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de software
 
Medindo a performance de aplicações web com JMeter
Medindo a performance de aplicações web com JMeterMedindo a performance de aplicações web com JMeter
Medindo a performance de aplicações web com JMeter
 
Perspectivas em teste de software
Perspectivas em teste de softwarePerspectivas em teste de software
Perspectivas em teste de software
 
Automação de Teste para REST, Web e Mobile
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
 
Teste software metodos metodologia ageis agil agile testing
Teste software metodos metodologia ageis agil agile testingTeste software metodos metodologia ageis agil agile testing
Teste software metodos metodologia ageis agil agile testing
 
Juntando para multiplicar
Juntando para multiplicarJuntando para multiplicar
Juntando para multiplicar
 
Palestra Automação de Testes em Dispositivos Móveis na Nuvem (BRATESTE2013)
Palestra Automação de Testes em Dispositivos Móveis na Nuvem (BRATESTE2013)Palestra Automação de Testes em Dispositivos Móveis na Nuvem (BRATESTE2013)
Palestra Automação de Testes em Dispositivos Móveis na Nuvem (BRATESTE2013)
 
Curso treinamento automação de testes com selenium
Curso treinamento automação de testes com seleniumCurso treinamento automação de testes com selenium
Curso treinamento automação de testes com selenium
 
InterCon - Automatizando Visual Regression Testing
InterCon - Automatizando Visual Regression TestingInterCon - Automatizando Visual Regression Testing
InterCon - Automatizando Visual Regression Testing
 
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
 
Hands On Selenium
Hands On SeleniumHands On Selenium
Hands On Selenium
 
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
 
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
 
Automacao testes automatizados
Automacao testes automatizadosAutomacao testes automatizados
Automacao testes automatizados
 

Destaque

Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeisQualister
 
BRATESTE 2013 - Automação de testes de dispositivos móveis na nuvem
BRATESTE 2013 - Automação de testes de dispositivos móveis na nuvemBRATESTE 2013 - Automação de testes de dispositivos móveis na nuvem
BRATESTE 2013 - Automação de testes de dispositivos móveis na nuvemQualister
 
Curso Teste de performance, carga e stress JMeter
Curso Teste de performance, carga e stress JMeterCurso Teste de performance, carga e stress JMeter
Curso Teste de performance, carga e stress JMeterQualister
 
Testes de segurança
Testes de segurançaTestes de segurança
Testes de segurançaQualister
 
Teste e Qualidade de Software
Teste e Qualidade de SoftwareTeste e Qualidade de Software
Teste e Qualidade de SoftwareQualister
 
Automação para Aplicaticos Móveis - Testes Automáticos Utilizando Appium
Automação para Aplicaticos Móveis - Testes Automáticos Utilizando AppiumAutomação para Aplicaticos Móveis - Testes Automáticos Utilizando Appium
Automação para Aplicaticos Móveis - Testes Automáticos Utilizando AppiumFabio Moura
 
Automação de Teste em UI para Android
Automação de Teste em UI para AndroidAutomação de Teste em UI para Android
Automação de Teste em UI para AndroidElias Nogueira
 
Estudo de caso Leyson M. Santana
Estudo de caso Leyson M. SantanaEstudo de caso Leyson M. Santana
Estudo de caso Leyson M. SantanaZaqueu Oliveira
 
Teste e Otimização de Interfaces Digitais - Huxley Dias
Teste e Otimização de Interfaces Digitais - Huxley DiasTeste e Otimização de Interfaces Digitais - Huxley Dias
Teste e Otimização de Interfaces Digitais - Huxley DiasHuxley Dias
 
Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Pablo Ribeiro
 
Validação e Testes de Software - MOD2
Validação e Testes de Software - MOD2Validação e Testes de Software - MOD2
Validação e Testes de Software - MOD2Fernando Palma
 
Métricas de estimativa de esforço em projetos de teste de software
Métricas de estimativa de esforço em projetos de teste de softwareMétricas de estimativa de esforço em projetos de teste de software
Métricas de estimativa de esforço em projetos de teste de softwareSamanta Cicilia
 
Testes ágeis
Testes ágeisTestes ágeis
Testes ágeisQualister
 
Testando a integração com APIs - RSonRails/11
Testando a integração com APIs - RSonRails/11Testando a integração com APIs - RSonRails/11
Testando a integração com APIs - RSonRails/11Rafael Souza
 
Testes de usabilidade com uma pitada de lean ux
Testes de usabilidade com uma pitada de lean uxTestes de usabilidade com uma pitada de lean ux
Testes de usabilidade com uma pitada de lean uxQualister
 
Testes de segurança desafios e oportunidades
Testes de segurança desafios e oportunidadesTestes de segurança desafios e oportunidades
Testes de segurança desafios e oportunidadesQualister
 
Automação de testes BDD e ATDD
Automação de testes BDD e ATDDAutomação de testes BDD e ATDD
Automação de testes BDD e ATDDQualister
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes ExploratóriosAlan Carlos
 
Automação de teste de software
Automação de teste de softwareAutomação de teste de software
Automação de teste de softwareQualister
 

Destaque (20)

Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeis
 
BRATESTE 2013 - Automação de testes de dispositivos móveis na nuvem
BRATESTE 2013 - Automação de testes de dispositivos móveis na nuvemBRATESTE 2013 - Automação de testes de dispositivos móveis na nuvem
BRATESTE 2013 - Automação de testes de dispositivos móveis na nuvem
 
Curso Teste de performance, carga e stress JMeter
Curso Teste de performance, carga e stress JMeterCurso Teste de performance, carga e stress JMeter
Curso Teste de performance, carga e stress JMeter
 
Testes de segurança
Testes de segurançaTestes de segurança
Testes de segurança
 
Teste e Qualidade de Software
Teste e Qualidade de SoftwareTeste e Qualidade de Software
Teste e Qualidade de Software
 
Automação para Aplicaticos Móveis - Testes Automáticos Utilizando Appium
Automação para Aplicaticos Móveis - Testes Automáticos Utilizando AppiumAutomação para Aplicaticos Móveis - Testes Automáticos Utilizando Appium
Automação para Aplicaticos Móveis - Testes Automáticos Utilizando Appium
 
Automação de Teste em UI para Android
Automação de Teste em UI para AndroidAutomação de Teste em UI para Android
Automação de Teste em UI para Android
 
Estudo de caso Leyson M. Santana
Estudo de caso Leyson M. SantanaEstudo de caso Leyson M. Santana
Estudo de caso Leyson M. Santana
 
Teste e Otimização de Interfaces Digitais - Huxley Dias
Teste e Otimização de Interfaces Digitais - Huxley DiasTeste e Otimização de Interfaces Digitais - Huxley Dias
Teste e Otimização de Interfaces Digitais - Huxley Dias
 
Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )
 
Validação e Testes de Software - MOD2
Validação e Testes de Software - MOD2Validação e Testes de Software - MOD2
Validação e Testes de Software - MOD2
 
Métricas de estimativa de esforço em projetos de teste de software
Métricas de estimativa de esforço em projetos de teste de softwareMétricas de estimativa de esforço em projetos de teste de software
Métricas de estimativa de esforço em projetos de teste de software
 
Testes ágeis
Testes ágeisTestes ágeis
Testes ágeis
 
Testando a integração com APIs - RSonRails/11
Testando a integração com APIs - RSonRails/11Testando a integração com APIs - RSonRails/11
Testando a integração com APIs - RSonRails/11
 
Docker e suas tecnologias
Docker e suas tecnologiasDocker e suas tecnologias
Docker e suas tecnologias
 
Testes de usabilidade com uma pitada de lean ux
Testes de usabilidade com uma pitada de lean uxTestes de usabilidade com uma pitada de lean ux
Testes de usabilidade com uma pitada de lean ux
 
Testes de segurança desafios e oportunidades
Testes de segurança desafios e oportunidadesTestes de segurança desafios e oportunidades
Testes de segurança desafios e oportunidades
 
Automação de testes BDD e ATDD
Automação de testes BDD e ATDDAutomação de testes BDD e ATDD
Automação de testes BDD e ATDD
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes Exploratórios
 
Automação de teste de software
Automação de teste de softwareAutomação de teste de software
Automação de teste de software
 

Semelhante a Testes móveis com Appium

[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...GUTS-RS
 
Automação de Teste com Robotium - Tche Mobile 2014
Automação de Teste com Robotium - Tche Mobile 2014Automação de Teste com Robotium - Tche Mobile 2014
Automação de Teste com Robotium - Tche Mobile 2014Elias Nogueira
 
Testes automatizados mobile - uma prova de conceito
Testes automatizados mobile - uma prova de conceitoTestes automatizados mobile - uma prova de conceito
Testes automatizados mobile - uma prova de conceitoJoyce Bastos
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento MobileElton Minetto
 
Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de SeleniumAutotic
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSAmazon Web Services LATAM
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasAmazon Web Services LATAM
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareAndré Dias
 
Curso Treinamento Automação de testes com Selenium Qualister
Curso Treinamento Automação de testes com Selenium QualisterCurso Treinamento Automação de testes com Selenium Qualister
Curso Treinamento Automação de testes com Selenium QualisterQualister
 
[Iniciante] - Testes Unitários com WP-UNIT no Wordpress
[Iniciante] - Testes Unitários com WP-UNIT no Wordpress[Iniciante] - Testes Unitários com WP-UNIT no Wordpress
[Iniciante] - Testes Unitários com WP-UNIT no WordpressRoger Ritter
 
Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app HíbridaElias Nogueira
 
2006 - Tipos de Projeto & IDE do Visual Studio.ppt
2006 - Tipos de Projeto & IDE do Visual Studio.ppt2006 - Tipos de Projeto & IDE do Visual Studio.ppt
2006 - Tipos de Projeto & IDE do Visual Studio.pptRicardo Guerra Freitas
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e SeleniumAndré Thiago
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agileAlini Rebonatto
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontatdc-globalcode
 

Semelhante a Testes móveis com Appium (20)

[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
 
Automação de Teste com Robotium - Tche Mobile 2014
Automação de Teste com Robotium - Tche Mobile 2014Automação de Teste com Robotium - Tche Mobile 2014
Automação de Teste com Robotium - Tche Mobile 2014
 
Mobile tests usando AWS Device Farm
Mobile tests usando AWS Device FarmMobile tests usando AWS Device Farm
Mobile tests usando AWS Device Farm
 
Testes automatizados mobile - uma prova de conceito
Testes automatizados mobile - uma prova de conceitoTestes automatizados mobile - uma prova de conceito
Testes automatizados mobile - uma prova de conceito
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
JEE nas nuvens: uma introdução ao openshift
JEE nas nuvens:  uma introdução ao openshiftJEE nas nuvens:  uma introdução ao openshift
JEE nas nuvens: uma introdução ao openshift
 
Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de Selenium
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWS
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
 
Curso Treinamento Automação de testes com Selenium Qualister
Curso Treinamento Automação de testes com Selenium QualisterCurso Treinamento Automação de testes com Selenium Qualister
Curso Treinamento Automação de testes com Selenium Qualister
 
Webinar: Apresentando AWS Device Farm
Webinar: Apresentando AWS Device Farm Webinar: Apresentando AWS Device Farm
Webinar: Apresentando AWS Device Farm
 
[Iniciante] - Testes Unitários com WP-UNIT no Wordpress
[Iniciante] - Testes Unitários com WP-UNIT no Wordpress[Iniciante] - Testes Unitários com WP-UNIT no Wordpress
[Iniciante] - Testes Unitários com WP-UNIT no Wordpress
 
Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app Híbrida
 
2006 - Tipos de Projeto & IDE do Visual Studio.ppt
2006 - Tipos de Projeto & IDE do Visual Studio.ppt2006 - Tipos de Projeto & IDE do Visual Studio.ppt
2006 - Tipos de Projeto & IDE do Visual Studio.ppt
 
Base2 Tecnologia
Base2 TecnologiaBase2 Tecnologia
Base2 Tecnologia
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e Selenium
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
 

Mais de Qualister

Tendências em teste de software
Tendências em teste de softwareTendências em teste de software
Tendências em teste de softwareQualister
 
Automação de testes funcionais com selenium webdriver
Automação de testes funcionais com selenium webdriverAutomação de testes funcionais com selenium webdriver
Automação de testes funcionais com selenium webdriverQualister
 
Gestão de defeitos e testes com Jira
Gestão de defeitos e testes com JiraGestão de defeitos e testes com Jira
Gestão de defeitos e testes com JiraQualister
 
Free-ebook-rex-black advanced-software-testing
Free-ebook-rex-black advanced-software-testingFree-ebook-rex-black advanced-software-testing
Free-ebook-rex-black advanced-software-testingQualister
 
Galileo computing software testing
Galileo computing software testingGalileo computing software testing
Galileo computing software testingQualister
 
Testes em métodos ágeis
Testes em métodos ágeisTestes em métodos ágeis
Testes em métodos ágeisQualister
 
Curso testes avaliação Usabilidade
Curso testes avaliação UsabilidadeCurso testes avaliação Usabilidade
Curso testes avaliação UsabilidadeQualister
 
Curso de verificação e Revisão e Inspeção de artefatos
Curso de verificação e Revisão e Inspeção de artefatosCurso de verificação e Revisão e Inspeção de artefatos
Curso de verificação e Revisão e Inspeção de artefatosQualister
 

Mais de Qualister (8)

Tendências em teste de software
Tendências em teste de softwareTendências em teste de software
Tendências em teste de software
 
Automação de testes funcionais com selenium webdriver
Automação de testes funcionais com selenium webdriverAutomação de testes funcionais com selenium webdriver
Automação de testes funcionais com selenium webdriver
 
Gestão de defeitos e testes com Jira
Gestão de defeitos e testes com JiraGestão de defeitos e testes com Jira
Gestão de defeitos e testes com Jira
 
Free-ebook-rex-black advanced-software-testing
Free-ebook-rex-black advanced-software-testingFree-ebook-rex-black advanced-software-testing
Free-ebook-rex-black advanced-software-testing
 
Galileo computing software testing
Galileo computing software testingGalileo computing software testing
Galileo computing software testing
 
Testes em métodos ágeis
Testes em métodos ágeisTestes em métodos ágeis
Testes em métodos ágeis
 
Curso testes avaliação Usabilidade
Curso testes avaliação UsabilidadeCurso testes avaliação Usabilidade
Curso testes avaliação Usabilidade
 
Curso de verificação e Revisão e Inspeção de artefatos
Curso de verificação e Revisão e Inspeção de artefatosCurso de verificação e Revisão e Inspeção de artefatos
Curso de verificação e Revisão e Inspeção de artefatos
 

Testes móveis com Appium

  • 2. Elias  Nogueira    <elias.nogueira@qualister.com.br>    Consultor  de  Teste  e  Qualidade  de  so0ware  na  Qualister   Professor  de  Pós  Graduação  na  Unisinos/RS  e  Uniasselvi/SC   eliasnogueira   qualister.com.br   br.linkedin.com/in/eliasnogueira   youtube.com/user/qualistervideos   Palestrante  
  • 3. Qualister   •  Fundada  em  2007   •  Mais  de  1.000  clientes  em  todo  o  Brasil   •  Mais  de  50  cursos  sobre  teste  de  so0ware   •  Mais  de  3.000  alunos  formados   •  Áreas  de  atuação:   •  Consultoria  na  área  de  teste  qualidade  de  so0ware   •  Cursos   •  Revenda  de  ferramentas  
  • 4. Mais  de  1.000  clientes  
  • 6. Tipos  de  Aplicações   Neste  tópico  aprenderemos  sobre  os  diferentes  Spos  de   apps  para  disposiSvos  móveis  
  • 7. Tipos  de  Apps  Mobile   HTML/Browser Híbridas Nativas
  • 8. Diferentes  Tipos  de  Apps   Nativo iOS Híbrida Nativo Android
  • 9. Desafios  de  Testes   Neste  tópico  iremos  ilustrar  quais  são  os  desafios  para   testar  em  plataformas  e  o  desafio  de  testes  nas  apps.  
  • 11. Desafios  -­‐  Plataformas   Fragmentação  das  plataformas   [redução]  9  para  2  possibilidades   Versões  mais  uSlizadas:  hp://developer.android.com/about/dashboards/     Versão   Codenome   API   Distribuição   2.2   Froyo   8   0.3%   2.3.3   2.3.7   Gingerbread   10   4.6%   4.0.3   4.0.4   Ice  Cream   Sandwich   15   4.1%   4.1.x   Jelly  Bean   16   13.0%   4.2.x   17   15.9%   4.3   18   4.7%   4.4   KitKat   19   39.3%   5.0   Lollipop   21   15.5%   5.1   22   2.6  
  • 12. Desafios  -­‐  Plataformas   Fragmentação  das  plataformas   1  (iphone)  +  1  (iPad)  possibilidades   Versões  mais  uSlizadas:  hps://developer.apple.com/support/appstore/   Matriz  de  versões:  hp://iossupportmatrix.com/  
  • 13. Desafios  -­‐  DisposiSvos   Fragmentação  de  Disposi,vos     Android   •  Mais  de  24.903  disposiSvos  disSntos   •  Diferentes  fabricantes:  Samsung,  Motorola,  HTC,  LG,  Sony,   Samsung  (38%)   iPhone   •  5  disposiSvos  usados  no  mercado  (4S,  5,  5c,  5s,  6)   •  5  disposiSvos  suportados  oficialmente  (5s,  6,  6  plus,  6s,  6s  plus)   •  Mais  uSlizados  4s,  5,  5s  e  6     http://opensignal.com/reports/2015/08/android-fragmentation/
  • 14. Desafios  -­‐  DisposiSvos   Tamanho  de  Tela      
  • 15. Desafios  -­‐  Execução   Emuladores   Cloud  TesSng   DisposiSvo  Real   •  Muitos  apps  podem  ser   testados  em  emuladores   sem  o  invesSmento  de   hardware  (smartphones)   •  A  grande  maioria  é  free  e   empresas  disponibilizam   seus  emuladores   •  Os  disposiSvos  podem  ser   acessadas  via  web   •  A  aplicação  pode  ser   instalada,  testada  e   gerenciada   •  É  segura  para  as  aSvidades   de  teste   •  Vai  trazer  resultados  mais   realísScos   •  Todas  as  possibilidades  de   teste  poderão  ser  executadas   incluindo  as  com  dependência   de  hardware  
  • 16. Como  resolver  estes  desafios?   •  Obter  estaSsScamente  os  disposiSvos  mais   uSlizados   •  Logs  do  Console  de  Desenvolvedor   •  Relato  de  erros  de  usuários   •  Volume  de  vendas  dos  disposiSvos  
  • 18. Pirâmide  de  Automação  de  Teste   É  importante  automaSzar  todos  os  níveis  da  app  
  • 19. Ferramentas   Existem  diversas  ferramentas  para  automação  de   testes  em  UI  para  Android  e  iOS   Appium   hp://appium.io/   selendroid   hp://selendroid.io/   Robo,um   hps://code.google.com/p/roboSum/   calabash-­‐andorid   hps://github.com/calabash/calabash-­‐android   MonkeyTalk   hps://www.cloudmonkeymobile.com/monkeytalk   Espresso   hps://code.google.com/p/android-­‐test-­‐kit/wiki/Espresso   UiAutomator   hps://developer.android.com/tools/tesSng-­‐support-­‐ library/index.html#UIAutomator   http://www.qualister.com.br/blog/comparativo-de-ferramentas-para-automacao-de-teste-em-android
  • 20. Ferramentas   Existem  diversas  ferramentas  para  automação  de   testes  em  UI  para  Android  e  iOS   Robo,um   UiAutomator   Espresso   Calabash   Appium   Mobile  Web   Sim   (Android)   Não   Não   Sim   (Android)   Sim   (iOS  e  Android)   Linguagem   Java   Java   Java   Ruby   Muitas   Ferramenta   para  criação   de  teste   RoboSum   Recorder   UiAutomatorViewer   Hierarchy   Viewer   CLI   Appium.app   UiAutomatorViewer   APIs   suportadas   Todas   >=16   8,10,15-­‐19   Todas   Todas   Comunidade   Contributors   Google   Google   Pequena   ASva  
  • 21. Introdução  a  Appium   Appium  é  uma  ferramenta  open  source  para   automaSzar:     •  Aplicações  mobile  naSvas  ou  híbridas  para  iOS,  Android   •  Aplicações  web  mobile  para  os  browsers  naSvos  do  iOS,     Android  ou  Google  Chrome  
  • 22. Introdução  a  Appium   Appium  também  é  mulS-­‐plataforma,  ou  seja,   podemos  escrever  um  único  código  que  executa   em  iOS,  Android  usando  a  mesma  API  
  • 23. Arquitetura   WebDriver  Interface   Json  Wired  Protocol   Android  (4.2+)     UiAutomator   iOS  (até  8.1)   UIAutomator   Selendroid  (<2.3+)   InstrumetaSon  (para  disposiSvos  anSgos)  
  • 24. Design   •  O  Appium,  na  verdade,  é  um  HTTP  Server  que   cria  e  gerencia  sessões  do  WebDriver   •  O  WebDriver  é  hoje  um  padrão  W3C  para   automação  de  teste  web   •  O  Appium  inicia  um  “caso  de  teste  /  script”  que   inicia  um  servidor  de  teste  e  espera  os   comandos  enviados  por  ele  para  o  disposiSvo  
  • 25. Conceito   Arquitetura  Cliente/Servidor     •  Appium  é  um  servidor  web  que  expõe  uma  API  REST   •  Ele  recebe  conexões  de  um  cliente,  espera  por   comandos,  executa  os  comandos  em  um  disposiSvo   móvel  e  responde  com  uma  resposta  HTTP  com  o   resultado  do  comando   •  Com  isso  podemos  ter  diferentes  linguagens  de   programação  para  escrever  os  testes  e  rodar  os  testes   em  máquinas  totalmente  separadas  
  • 26. Conceito   Sessão     •  Toda  a  comunicação  com  um  disposiSvo  é  aberta   através  de  uma  sessão  (session)  para  cada  biblioteca   (linguagem)  uSlizada   •  Esta  requisição  é  um  POST  com  um  objeto  JSON   enviando  as  capacidades  desejadas  (Desired   Capabili>es)   •  Neste  ponto  o  servidor  responde  com  um  ID  de  sessão   e  passa  a  receber  comandos  (requests)  por  esse  ID   entre  o  servidor  e  o  disposiSvo  
  • 27. Conceito   Desired  Capabili,es     •  É  um  conjunto  de  comandos  enviados  para  os  servidor   com  capacidades  específicas  para  cada  sessão   •  Com  ela  podemos  informar  que  desejamos  uma  sessão   (disposiSvo)  que  seja  um  IOS  ou  Android,  e  até  mesmo   especificar  a  versão  de  ambos  
  • 28. Conceito   Appium  Server     •  É  um  servidor  escrito  em  node.js  que  pode  ser  instalado   via  NPM  ou  como  uma  aplicação  para  o  Sistema   Operacional   •  Com  ele  instalado  no  Sistema  Operacional  poderemos   ter  diversas  funções,  como  inspeção  e  testes  de   comandos  no  disposiSvo   •  O  Appium.app,  aplicação  desktop,  já  tem  o  node.js   embuSdo  para  a    execução  do  servidor  do  Appium  
  • 29. Conceito   Appium  Client     •  São  as  bibliotecas  para  que  possamos  escrever  os   testes  em  diferentes  linguagens  de  programação   suportadas  
  • 30. Dispositivo Script de Teste Execução  Local  (localhost)   Appium  Server   AppiumDriver   Desired   Capabilites   Caso  de  Teste   4723   Appium DesiredCapabilities http://localhost:4723/wd/hub Sessão  
  • 32. Dinâmica   Neste  tópico  falaremos  sobre  a  dinâmica  de  automação   com  o  Appium  
  • 33. Dinâmica   A  seguinte  dinâmica  será  adotada:     •  Apresentação  de  cada  ponto  sobre  Appium   •  Instalação  da  app   •  Inserção  das  DesiredCapabili>es   •  Inserção  da  interação  com  a  app   •  Inserção  das  validações   •  Execução  do  script   •  Exercício(s)    
  • 34. Passos  de  Automação   Nós  executaremos  os  seguintes  passos  para  automaSzar   os  testes:     1.  Executar  o  teste  manualmente  no  disposiSvo   2.  Desenvolver  o  script   1.  Informar  a  app  que  será  testada   2.  Informar  as  capacidades   3.  Criar  a  conexão  com  Appium   4.  Desenvolver  o  script  (interação  com  os  componentes)   5.  Colocar  as  validações   3.  Executando  o  script  automaSzado   1.  Abrir  e  iniciar  o  Appium.app   2.  Executar  o  script  de  teste  
  • 35. O  Projeto  completo  está  no  GitHub   hps://github.com/qualister-­‐consultoria/ workshop-­‐appium-­‐android