SlideShare uma empresa Scribd logo
1 de 61
#gutsrs /@gutsrs
Workshop (prático) de Testes Automatizados
para dispositivos móveis com Appium
Elias Nogueira
Sobre o GUTS-RS
• GUTS-RS: Grupo de Usuários de Testes de Software do RS
• Criado em: agosto/2008
• Objetivo: compartilhar o uso de métodos, processos e
ferramentas de Teste de Software e promover discussões
sobre a aplicação das melhores práticas de teste e
qualidade utilizadas no mercado
• Público Alvo: Gerentes, Analistas de Testes, Testadores,
Desenvolvedores e demais profissionais e estudantes
interessados na área
• Coordenação: Aline Zanin, Cíntia Armesto, Diraci Júnior,
Eduardo Oliveira, Gabriel Oliveira e Moisés Ramírez
Canais de Comunicação
http://guts-rs.blogspot.com.br/
@gutsrs
guts-rs-sucesu@googlegroups.com
Grupo de Usuários de Testes de Software do RS
Guts RS GUTS / RS
http://pt.slideshare.net/GUTS-RS
Testando no Bar – Porto Alegre
Comunicados
• Submissão de Palestras 2015
– DOJO
– Fishbowl
– Palestra
– TCC
– Testing Games
– Workshop
– Outros
• Casos de Família de QA
• Organização de eventos presenciais - 2015/2
• Assinar a lista de presença
• Preencher a Ficha do Evento
Próximos Eventos
• [Agosto]: Agile Testing Coach
• [Setembro]: Arquitetura de testes de software
• Backlog
– BDD com Cucumber
– Mão na massa com Protractor
– É possível MVP com qualidade?
– Automação de Teste de Software com Sikuli Script
– Virose Waterfall no corpinho de Agile: problemas
e soluções
Próximos Hangouts
• [Julho]: Gestão de testes (29/07)
• Backlog
– Futuro do Teste de Software (Agosto)
– What is the importance of speaking English in our
testing market today (Setembro)
– Cloud Testing (Outubro)
– Hangout Feminino (Dezembro)
Programação
• 19h15 às 19h45 Recepção, boas vindas e
Coffee para integração
• 19h45 às 19h55 Abertura do evento,
apresentação do GUTS-RS e expectativas do
evento
• 19h55 às 21h30 Workshop (Elias Nogueira)
contato@qualister.com.br
(48) 3285-5615
twitter.com/qualister
facebook.com/qualister
linkedin.com/company/qualister
Appium
Automação de Testes para
dispositivos mobile
elias.nogueira@qualister.com.br
eliasnogueira.com
@eliasnogueira
br.linkedin.com/in/eliasnogueira
github.com/eliasnogueira
facebook.com/elias.nogueira.teste
plus.google.com/+EliasNogueira/
qualister.com.br/
qualister.com.br/blog
qualister.com.br/cursos
Elias Nogueira
Consultor em Qualidade e Teste de Software na Qualister Consultoria
Professor de Pós Graduação na Unisinos/RS e Uniasselvi/SC
Introdução ao Appium
Neste tópico falaremos o que é o Appium e como ele
funciona
Introdução a Appium
Appium é uma ferramenta open source para
automatizar:
•Aplicações mobile nativas ou híbridas para iOS, Android
•Aplicações web mobile para os browsers nativos do iOS,
Android ou Google Chrome
Diferentes Tipos de Apps
Nativo iOS Híbrida Nativo Android
Introdução a Appium
Appium também é multi-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+)
Instrumetation (para dispositivos antigos)
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 dispositivo
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 dispositivo 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 dispositivo é aberta através
de uma sessão (session) para cada biblioteca (linguagem)
utilizada
•Esta requisição é um POST com um objeto JSON enviando
as capacidades desejadas (Desired Capabilities)
•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 dispositivo
Conceito
Desired Capabilities
•É 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
(dispositivo) 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
dispositivo
•O Appium.app, aplicação desktop, já tem o node.js
embutido 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 DesiredCapabilities
• 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 automatizar os
testes:
1. Executar o teste manualmente no dispositivo
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 automatizado
1. Abrir e iniciar o Appium.app
2. Executar o script de teste
Mas antes... testes do ambiente!
Vamos testar para saber se você configurou seu ambiente
Testes do Ambiente
Todos acessaram um link de pré condições
http://qualister.info/workshops/appium/pre_condicoes/
Aqueles que não o fizeram, infelizmente, não será dado
suporte no Exercício(s) 
Java
Digite a palavra java e pressione ENTER no Prompt de Comando
Resultado Esperado: um monte de palavras em inglês começando com “-”
Android
Digite a palavra android sdk e pressione ENTER no Prompt de
Comando
Resultado Esperado: abertura da janela Android SDK Manager
Android
Digite a palavra android avd e pressione ENTER no Prompt de
Comando
Resultado Esperado: abertura da janela Android Virtual Device (AVD) Manager
Android
Digite a palavra adb e pressione ENTER no Prompt de Comando
Resultado Esperado: Um log de todos os parâmetros do adb
Configurações
Neste tópico falaremos sobre como configurar o projeto e
o Appium.app
Configurações
1. Crie uma pasta no C: com o nome “Appium_drivers” contendo:
• Arquivo java-client-3.0.0.jar
• Arquivo selenium-server-standalone.2.46.0.jar
2. Copiar os arquivos .apk (aplicações) para a pasta
“Appium_drivers”
1. Criar um projeto no Eclipse IDE com nome “Exemplo_Appium”
• Menu File -> New -> Java Project
• Informar o nome “Exemplo_Appium” e clicar em Finish
Configurações
4. Adicione as bibliotecas no Build Path do projeto no Eclipse IDE:
1. Menu File -> Properties
2. Selecionar “Java Build Path” no canto esquerdo e clicar na aba “Libraries”
3. Clicar no botão “Add External JARs...”
4. Selecionar o arquivo “java-client-3.0.0.jar” e clicar em OK
5. Repetir o passo 3 e 4, selecionando o arquivo “selenium-server-standalone-
2.46.0.jar”
Configurações
5. Criação da estrutura para o script:
• Abrir a pasta “Exemplo_Appium”, clicar na pasta “src”
• Clicar no menu File -> New -> Package
• Informar no campo Name: teste.triangulo
6. Criação do script
• Clique no pacote criado (teste.triangulo)
• Clicar no menu File -> New -> JUnit Test Case
• Informar o Name: TrianguloTeste
• Marcar as opções setup() e tearDown() e clicar em Finish
• Se aparecer uma janela do JUnit, clique em OK
Configurações
7. Alterar as configurações do Appium:
• Clicar no botão “General Settings” e marcar a opção “Override Existing
Session”
• Clicar no botão “Android Settings” , marcar a opção “Device Name” e
preencher com “Android Emulator”
Automação com Appium
Neste tópico falaremos como automatizar as apps mobile
utilizando o Appium e Java
Dinâmica
Podemos separar o desenvolvimento de um script com
Appium em 6 pontos:
1. Instalação da app
2. Inserção das DesiredCapabilities
3. Abertura da conexão com o dispositivo
4. Localização dos componentes
5. Interação com os componentes
6. Validação dos resultados
1. Instalação da app
No Appium podemos sempre instalar a aplicação
(fresh install) ou utilizar a app já instalada no dispositivo
Nosso foco será sempre instalar a aplicação a cada teste
Para isso utilizaremos a classe File do Java para informar
onde o arquivo .apk está para que ele seja instalado
automaticamente antes da execução do teste
1. Instalação da app
Na classe TesteTriangulo iremos escrever o código da pré-
instalação da app no @Before, que é um pré condição
2. Inserção das DesiredCapabilities
As DesiredCapabilities são as capacidades que
informaremos ao Appium. Elas podem ser do servidor ou
da plataforma. Exemplos de capacidades
• Plataforma: Android ou iOS
• Versão da Plataforma: “4.4” (Android) , “8.1” (iOS)
• Idioma: pt_BR
• APP: C:diretorioMeuApp.apk
A lista das capacidades do servidor ou plataforma pode ser
visualizada nos links abaixo:
• Servidor: http://appium.io/slate/en/master/?ruby#appium-server-capabilities
• Plataforma Android: http://appium.io/slate/en/master/?ruby#android-only
2. Inserção das DesiredCapabilities
O ponto de partida é a criação da instância
Depois é necessário utilizar o método setCapability para informar as
capacidades básicas
O Appium já possui uma classe chamada MobileCapabilityType com
todas as capacidades
2. Inserção das DesiredCapabilities
Na classe TesteTriangulo iremos escrever o código das
Capacidades para execução no Android, em dispositivo
emulado e na aplicação TrianguloApp.apk
3. Abertura da conexão com o dispositivo
Depois de ter informado qual aplicação será testada e as
capacidades é hora de comunicar com o dispositivo.
Isso é feito através da classe AndroidDriver
Ela é responsável por abrir uma conexão com os
dispositivos Android
3. Abertura da conexão com o dispositivo
Precisamos informar três itens diferentes para o AndroidDriver:
• Tipo de Elemento
• URL de conexão com Appium
• Capacidades
O Tipo do Elemento está como WebElement (genérico) mas pode
ser também um MobileElement
A URL de conexão é o IP do servidor do Appium mais a porta e o
contexto de conexão (wd/hub). O padrão é usar o Appium
localmente (127.0.0.1) na sua porta padrão (4732)
As Capacidades foram as criadas anteriormente para que possamos
enviar algumas configurações
Na classe TesteTriangulo iremos escrever a conexão do
Appium com o dispositivo:
3. Abertura da conexão com o dispositivo
3. Abertura da conexão com o dispositivo
A execução, mesmo com o teste vazio, vai abrir a app no dispositivo,
mas para isso é necessário iniciar primeiro o Appium.app
Clique no botão Launch the Appium Node Server e espere a
inicialização do servidor
Agora clique no menu Run/Run no Eclipse IDE e veja o resultado
4. Localização dos componentes
Faça um teste manual na aplicação TrianguloApp
•Informar “3” no Lado 1
•Informar “3” no Lado 1
•Informar “3” no Lado 1
•Clicar no botão Calcular
4. Localização dos componentes
Para escrever o código que irá localizar cada
componente é necessário usar o apelido do
AndroidDriver e o método findElement
É possível localizar o através de várias formas...
4. Localização dos componentes
Nós iremos localizar todos os componentes pelo ID
Para descobrir o ID dos componentes iremos
utilizar o uiautomatorviewer que é um visualizador
de componentes e de suas propriedades no
Android
4. Localização dos componentes
Digite uiautomatorviewer no Prompt de Comando
A janela mostra o que está sendo exibido no dispositivo
Captur
a da
tela
Captura do
dispositivo
Árvore de
componentes
Propriedade dos
componentes
4. Localização dos componentes
Para localizar um componente por ID basta clicar
sobre ele e visualizar o atributo resource-id
5. Interação com os componentes
Colocamos uma interação logo no final da
localização do componente, podendo ser:
Método Suportado?
clear() Limpa um campo de texto
click() Clica em determinado componente
sendKeys(“texto”
)
Insere texto em um campo de texto
getText() Retorna o texto de algum componente
5. Interação com os componentes
Na classe TesteTriangulo adicionar e localização e
interação com os componentes:
• Preencher Lado1, Lado2, Lado3 com “3”
• Clicar no botão Calcular
Substituir os IDs pelo resource-id de cada componente
Inspecionando pelo uiautomatorviewer
6. Validação dos resultados
Toda execução, até este momento, apenas executa ações
no dispositivo, mas não faz validações dos resultados
obtidos
Para isso usaremos a função assertEquals para comparar o
resultado esperado com o obtido da aplicação no
dispositivo
6. Validação dos resultados
Na classe TesteTriangulo insira a validação para o resultado
“O triângulo é Equilátero”
Fechando a aplicação
Para que ele feche a aplicação automaticamente a cada
teste, basta adicionar um comando na pós condição
(@After)
EXERCÍCIO
Crie mais dois testes, um para o triângulo isósceles e outro
para triângulo escaleno (não vale CRTL + C e CTRL + V)
EXERCÍCIO
Utilize todo o conhecimento adquirido para automatizar a
aplicação Fastip, com os seguintes testes:
Teste 1 – Calcular Gorjeta
•Informar o valor R$ 100 em Valor da
Conta
•Clicar em Calcular
•Validar os seguintes resultados:
• % Gorjeta
• Total Gorjeta
• Valor Total
Teste 2 – Alterar % da Gorjeta
•Clicar nas Configurações
•Colocar o valor 10 em % Gorjeta
•Clicar em Salvar
Na tela de calcula da gorjeta....
•Informar o valor R$ 200 em Valor da
Conta
•Clicar em Calcular
•Validar os seguintes resultados:
• % Gorjeta
• Total Gorjeta
• Valor Total
O Projeto completo está no GitHub
https://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

Teste sua app e aumente as chances de mantê-la no mercado
Teste sua app e aumente as chances de mantê-la no mercadoTeste sua app e aumente as chances de mantê-la no mercado
Teste sua app e aumente as chances de mantê-la no mercadoElias Nogueira
 
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
 
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
 
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...
Tudo o que você precisa saber para começar a automação de testes em dispositi...Elias Nogueira
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e SeleniumAndré Thiago
 
Testes para Android de ponta a ponta
Testes para Android de ponta a pontaTestes para Android de ponta a ponta
Testes para Android de ponta a pontaElias Nogueira
 
Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 2)Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 2)Wennder Santos
 
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
 
Introdução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumIntrodução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumSandy Maciel
 
Automação de Teste - BRATESTE 2010
Automação de Teste - BRATESTE 2010Automação de Teste - BRATESTE 2010
Automação de Teste - BRATESTE 2010Elias Nogueira
 
Automação de Teste em Front End - Caipira Ágil
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 ÁgilElias Nogueira
 
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
 
Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)Wennder Santos
 
Estudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogEstudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogVinícius Thiengo
 
Agileze seus testes com automacao e grid
Agileze seus testes com automacao e gridAgileze seus testes com automacao e grid
Agileze seus testes com automacao e gridElias Nogueira
 
Como testar sua aplicação Android com Robotium
Como testar sua aplicação Android com RobotiumComo testar sua aplicação Android com Robotium
Como testar sua aplicação Android com RobotiumThayse Severiano
 

Mais procurados (20)

Android Studio
Android StudioAndroid Studio
Android Studio
 
Teste sua app e aumente as chances de mantê-la no mercado
Teste sua app e aumente as chances de mantê-la no mercadoTeste sua app e aumente as chances de mantê-la no mercado
Teste sua app e aumente as chances de mantê-la no mercado
 
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
 
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
 
Be React. Do Tests!
Be React. Do Tests!Be React. Do Tests!
Be React. Do Tests!
 
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...
Tudo o que você precisa saber para começar a automação de testes em dispositi...
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e Selenium
 
Testes para Android de ponta a ponta
Testes para Android de ponta a pontaTestes para Android de ponta a ponta
Testes para Android de ponta a ponta
 
Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 2)Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 2)
 
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
 
Introdução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumIntrodução a testes de software utilizando selenium
Introdução a testes de software utilizando selenium
 
Automação de Teste - BRATESTE 2010
Automação de Teste - BRATESTE 2010Automação de Teste - BRATESTE 2010
Automação de Teste - BRATESTE 2010
 
Automação de Teste em Front End - Caipira Ágil
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
 
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
 
Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)
 
Selenium
SeleniumSelenium
Selenium
 
Integração Continua - Jenkins
Integração Continua - JenkinsIntegração Continua - Jenkins
Integração Continua - Jenkins
 
Estudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogEstudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do Blog
 
Agileze seus testes com automacao e grid
Agileze seus testes com automacao e gridAgileze seus testes com automacao e grid
Agileze seus testes com automacao e grid
 
Como testar sua aplicação Android com Robotium
Como testar sua aplicação Android com RobotiumComo testar sua aplicação Android com Robotium
Como testar sua aplicação Android com Robotium
 

Destaque

[GUTS-RS] Combatendo a síndrome do “testa ae” com sessões de exploratory testing
[GUTS-RS] Combatendo a síndrome do “testa ae” com sessões de exploratory testing[GUTS-RS] Combatendo a síndrome do “testa ae” com sessões de exploratory testing
[GUTS-RS] Combatendo a síndrome do “testa ae” com sessões de exploratory testingGUTS-RS
 
[GUTS-RS] World Quality Report 2014-15 Key Findings
[GUTS-RS] World Quality Report 2014-15 Key Findings[GUTS-RS] World Quality Report 2014-15 Key Findings
[GUTS-RS] World Quality Report 2014-15 Key FindingsGUTS-RS
 
[GUTS-RS] Agile Tester 3.0
[GUTS-RS] Agile Tester 3.0[GUTS-RS] Agile Tester 3.0
[GUTS-RS] Agile Tester 3.0GUTS-RS
 
[GUTS-RS] DevOps pela visão de QA
[GUTS-RS] DevOps pela visão de QA[GUTS-RS] DevOps pela visão de QA
[GUTS-RS] DevOps pela visão de QAGUTS-RS
 
[GUTS-RS] GUTS Testing Games - Jogo BDD Warriors
[GUTS-RS] GUTS Testing Games - Jogo BDD Warriors[GUTS-RS] GUTS Testing Games - Jogo BDD Warriors
[GUTS-RS] GUTS Testing Games - Jogo BDD WarriorsGUTS-RS
 
[GUTS-RS] DOJO de Arquitetura e Estratégia de Testes
[GUTS-RS] DOJO de Arquitetura e Estratégia de Testes[GUTS-RS] DOJO de Arquitetura e Estratégia de Testes
[GUTS-RS] DOJO de Arquitetura e Estratégia de TestesGUTS-RS
 
[GUTS-RS] GU Day 2015
[GUTS-RS] GU Day 2015[GUTS-RS] GU Day 2015
[GUTS-RS] GU Day 2015GUTS-RS
 
[GUTS-RS] Automação de Testes com Sikuli Script
[GUTS-RS] Automação de Testes com Sikuli Script[GUTS-RS] Automação de Testes com Sikuli Script
[GUTS-RS] Automação de Testes com Sikuli ScriptGUTS-RS
 
[GUTS-RS] Testar Interfaces com UX
[GUTS-RS] Testar Interfaces com UX[GUTS-RS] Testar Interfaces com UX
[GUTS-RS] Testar Interfaces com UXGUTS-RS
 
[GUTS-RS] Performance Engineering
[GUTS-RS] Performance Engineering[GUTS-RS] Performance Engineering
[GUTS-RS] Performance EngineeringGUTS-RS
 
[GUTS-RS] Testes em Projetos de Implantação de ERP
[GUTS-RS] Testes em Projetos de Implantação de ERP[GUTS-RS] Testes em Projetos de Implantação de ERP
[GUTS-RS] Testes em Projetos de Implantação de ERPGUTS-RS
 
[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de Testes[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de TestesGUTS-RS
 
[GUTS-RS] Agile Testing Coach
[GUTS-RS] Agile Testing Coach[GUTS-RS] Agile Testing Coach
[GUTS-RS] Agile Testing CoachGUTS-RS
 
[GUTS-RS] Test Thinking
[GUTS-RS] Test Thinking[GUTS-RS] Test Thinking
[GUTS-RS] Test ThinkingGUTS-RS
 

Destaque (14)

[GUTS-RS] Combatendo a síndrome do “testa ae” com sessões de exploratory testing
[GUTS-RS] Combatendo a síndrome do “testa ae” com sessões de exploratory testing[GUTS-RS] Combatendo a síndrome do “testa ae” com sessões de exploratory testing
[GUTS-RS] Combatendo a síndrome do “testa ae” com sessões de exploratory testing
 
[GUTS-RS] World Quality Report 2014-15 Key Findings
[GUTS-RS] World Quality Report 2014-15 Key Findings[GUTS-RS] World Quality Report 2014-15 Key Findings
[GUTS-RS] World Quality Report 2014-15 Key Findings
 
[GUTS-RS] Agile Tester 3.0
[GUTS-RS] Agile Tester 3.0[GUTS-RS] Agile Tester 3.0
[GUTS-RS] Agile Tester 3.0
 
[GUTS-RS] DevOps pela visão de QA
[GUTS-RS] DevOps pela visão de QA[GUTS-RS] DevOps pela visão de QA
[GUTS-RS] DevOps pela visão de QA
 
[GUTS-RS] GUTS Testing Games - Jogo BDD Warriors
[GUTS-RS] GUTS Testing Games - Jogo BDD Warriors[GUTS-RS] GUTS Testing Games - Jogo BDD Warriors
[GUTS-RS] GUTS Testing Games - Jogo BDD Warriors
 
[GUTS-RS] DOJO de Arquitetura e Estratégia de Testes
[GUTS-RS] DOJO de Arquitetura e Estratégia de Testes[GUTS-RS] DOJO de Arquitetura e Estratégia de Testes
[GUTS-RS] DOJO de Arquitetura e Estratégia de Testes
 
[GUTS-RS] GU Day 2015
[GUTS-RS] GU Day 2015[GUTS-RS] GU Day 2015
[GUTS-RS] GU Day 2015
 
[GUTS-RS] Automação de Testes com Sikuli Script
[GUTS-RS] Automação de Testes com Sikuli Script[GUTS-RS] Automação de Testes com Sikuli Script
[GUTS-RS] Automação de Testes com Sikuli Script
 
[GUTS-RS] Testar Interfaces com UX
[GUTS-RS] Testar Interfaces com UX[GUTS-RS] Testar Interfaces com UX
[GUTS-RS] Testar Interfaces com UX
 
[GUTS-RS] Performance Engineering
[GUTS-RS] Performance Engineering[GUTS-RS] Performance Engineering
[GUTS-RS] Performance Engineering
 
[GUTS-RS] Testes em Projetos de Implantação de ERP
[GUTS-RS] Testes em Projetos de Implantação de ERP[GUTS-RS] Testes em Projetos de Implantação de ERP
[GUTS-RS] Testes em Projetos de Implantação de ERP
 
[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de Testes[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de Testes
 
[GUTS-RS] Agile Testing Coach
[GUTS-RS] Agile Testing Coach[GUTS-RS] Agile Testing Coach
[GUTS-RS] Agile Testing Coach
 
[GUTS-RS] Test Thinking
[GUTS-RS] Test Thinking[GUTS-RS] Test Thinking
[GUTS-RS] Test Thinking
 

Semelhante a [GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis com Appium

Testes para dispositivos móveis
Testes para dispositivos móveisTestes para dispositivos móveis
Testes para dispositivos móveisQualister
 
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
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasWordCamp Floripa
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...Amazon Web Services
 
Android Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na CloudAndroid Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na CloudiMasters
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao androidMessias Batista
 
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...minastestingconference
 
Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma AndroidÉdipo Souza
 
Solucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.ioSolucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.ioPatrick Monteiro
 
Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de SeleniumAutotic
 
Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app HíbridaElias Nogueira
 
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
 
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Afonso Machado
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
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
 
Android DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimentoAndroid DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimentoiMasters
 

Semelhante a [GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis com Appium (20)

Testes para dispositivos móveis
Testes para dispositivos móveisTestes para dispositivos móveis
Testes para dispositivos móveis
 
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
 
Android Aula 4
Android Aula 4Android Aula 4
Android Aula 4
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio Nas
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
 
Android Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na CloudAndroid Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na Cloud
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
 
Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma Android
 
Solucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.ioSolucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.io
 
Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de Selenium
 
Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app Híbrida
 
Robotium_Sikuli
Robotium_SikuliRobotium_Sikuli
Robotium_Sikuli
 
Introdução ao Android Studio
Introdução ao Android StudioIntrodução ao Android Studio
Introdução ao Android Studio
 
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
 
Desafio Rest API
Desafio Rest APIDesafio Rest API
Desafio Rest API
 
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
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
 
Android DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimentoAndroid DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimento
 

Mais de GUTS-RS

[GUTS-RS] Testes de Performance
 [GUTS-RS] Testes de Performance [GUTS-RS] Testes de Performance
[GUTS-RS] Testes de PerformanceGUTS-RS
 
[GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
 [GUTS-RS] - Testes de Segurança: O que preciso saber para planejar [GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
[GUTS-RS] - Testes de Segurança: O que preciso saber para planejarGUTS-RS
 
Evento novembro 2018 - Desafios do QA - Da automação ao Ágil
Evento novembro 2018 - Desafios do QA - Da automação ao ÁgilEvento novembro 2018 - Desafios do QA - Da automação ao Ágil
Evento novembro 2018 - Desafios do QA - Da automação ao ÁgilGUTS-RS
 
Evento setembro 2018 - Criando comunidades de prática na organização
Evento setembro 2018 - Criando comunidades de prática na organizaçãoEvento setembro 2018 - Criando comunidades de prática na organização
Evento setembro 2018 - Criando comunidades de prática na organizaçãoGUTS-RS
 
10 ANOS DE GUTS-RS E A EVOLUÇÃO DO QA NESSES 10 ANOS
10 ANOS DE GUTS-RS E A EVOLUÇÃO DO QA NESSES 10 ANOS10 ANOS DE GUTS-RS E A EVOLUÇÃO DO QA NESSES 10 ANOS
10 ANOS DE GUTS-RS E A EVOLUÇÃO DO QA NESSES 10 ANOSGUTS-RS
 
[GUTS-RS] Evento Julho 2018 - Testes de Software em ambientes ERP SAP
[GUTS-RS] Evento Julho 2018 - Testes de Software em ambientes ERP SAP[GUTS-RS] Evento Julho 2018 - Testes de Software em ambientes ERP SAP
[GUTS-RS] Evento Julho 2018 - Testes de Software em ambientes ERP SAPGUTS-RS
 
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de TestesGUTS-RS
 
[GUTS-RS] Evento Abril 2018 - Qualidade de código para automação de testes
[GUTS-RS] Evento Abril 2018 - Qualidade de código para automação de testes[GUTS-RS] Evento Abril 2018 - Qualidade de código para automação de testes
[GUTS-RS] Evento Abril 2018 - Qualidade de código para automação de testesGUTS-RS
 
GUTS Talks Março 2018
GUTS Talks Março 2018GUTS Talks Março 2018
GUTS Talks Março 2018GUTS-RS
 
[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de Testes[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de TestesGUTS-RS
 
[GUTS-RS] Evento Outubro 2017 - Entrega contínua do zero ao sucesso
[GUTS-RS] Evento Outubro 2017 - Entrega contínua  do zero ao sucesso[GUTS-RS] Evento Outubro 2017 - Entrega contínua  do zero ao sucesso
[GUTS-RS] Evento Outubro 2017 - Entrega contínua do zero ao sucessoGUTS-RS
 
[GUTS-RS] Evento Setembro 2017 - Continuous Integration, Delivery e Deploymen...
[GUTS-RS] Evento Setembro 2017 - Continuous Integration, Delivery e Deploymen...[GUTS-RS] Evento Setembro 2017 - Continuous Integration, Delivery e Deploymen...
[GUTS-RS] Evento Setembro 2017 - Continuous Integration, Delivery e Deploymen...GUTS-RS
 
[GUTS-RS] GUDay 2017: Qualidade impulsionando negócios, criando marcas e prod...
[GUTS-RS] GUDay 2017: Qualidade impulsionando negócios, criando marcas e prod...[GUTS-RS] GUDay 2017: Qualidade impulsionando negócios, criando marcas e prod...
[GUTS-RS] GUDay 2017: Qualidade impulsionando negócios, criando marcas e prod...GUTS-RS
 
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...GUTS-RS
 
[GUTS-RS] GUTS Talks - Soft Skills
[GUTS-RS] GUTS Talks - Soft Skills[GUTS-RS] GUTS Talks - Soft Skills
[GUTS-RS] GUTS Talks - Soft SkillsGUTS-RS
 
[GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development
[GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development[GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development
[GUTS-RS] Workshop de Introdução ao Behaviour-Driven DevelopmentGUTS-RS
 
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...GUTS-RS
 
[GUTS-RS] Mobile Testing
[GUTS-RS] Mobile Testing[GUTS-RS] Mobile Testing
[GUTS-RS] Mobile TestingGUTS-RS
 
[GUTS-RS] GUTS Talks - Ferramentas de Automação de Testes
[GUTS-RS] GUTS Talks - Ferramentas de Automação de Testes[GUTS-RS] GUTS Talks - Ferramentas de Automação de Testes
[GUTS-RS] GUTS Talks - Ferramentas de Automação de TestesGUTS-RS
 
[GUTS-RS] Práticas de desenvolvimento aplicadas na automação de testes com Se...
[GUTS-RS] Práticas de desenvolvimento aplicadas na automação de testes com Se...[GUTS-RS] Práticas de desenvolvimento aplicadas na automação de testes com Se...
[GUTS-RS] Práticas de desenvolvimento aplicadas na automação de testes com Se...GUTS-RS
 

Mais de GUTS-RS (20)

[GUTS-RS] Testes de Performance
 [GUTS-RS] Testes de Performance [GUTS-RS] Testes de Performance
[GUTS-RS] Testes de Performance
 
[GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
 [GUTS-RS] - Testes de Segurança: O que preciso saber para planejar [GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
[GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
 
Evento novembro 2018 - Desafios do QA - Da automação ao Ágil
Evento novembro 2018 - Desafios do QA - Da automação ao ÁgilEvento novembro 2018 - Desafios do QA - Da automação ao Ágil
Evento novembro 2018 - Desafios do QA - Da automação ao Ágil
 
Evento setembro 2018 - Criando comunidades de prática na organização
Evento setembro 2018 - Criando comunidades de prática na organizaçãoEvento setembro 2018 - Criando comunidades de prática na organização
Evento setembro 2018 - Criando comunidades de prática na organização
 
10 ANOS DE GUTS-RS E A EVOLUÇÃO DO QA NESSES 10 ANOS
10 ANOS DE GUTS-RS E A EVOLUÇÃO DO QA NESSES 10 ANOS10 ANOS DE GUTS-RS E A EVOLUÇÃO DO QA NESSES 10 ANOS
10 ANOS DE GUTS-RS E A EVOLUÇÃO DO QA NESSES 10 ANOS
 
[GUTS-RS] Evento Julho 2018 - Testes de Software em ambientes ERP SAP
[GUTS-RS] Evento Julho 2018 - Testes de Software em ambientes ERP SAP[GUTS-RS] Evento Julho 2018 - Testes de Software em ambientes ERP SAP
[GUTS-RS] Evento Julho 2018 - Testes de Software em ambientes ERP SAP
 
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes
 
[GUTS-RS] Evento Abril 2018 - Qualidade de código para automação de testes
[GUTS-RS] Evento Abril 2018 - Qualidade de código para automação de testes[GUTS-RS] Evento Abril 2018 - Qualidade de código para automação de testes
[GUTS-RS] Evento Abril 2018 - Qualidade de código para automação de testes
 
GUTS Talks Março 2018
GUTS Talks Março 2018GUTS Talks Março 2018
GUTS Talks Março 2018
 
[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de Testes[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de Testes
 
[GUTS-RS] Evento Outubro 2017 - Entrega contínua do zero ao sucesso
[GUTS-RS] Evento Outubro 2017 - Entrega contínua  do zero ao sucesso[GUTS-RS] Evento Outubro 2017 - Entrega contínua  do zero ao sucesso
[GUTS-RS] Evento Outubro 2017 - Entrega contínua do zero ao sucesso
 
[GUTS-RS] Evento Setembro 2017 - Continuous Integration, Delivery e Deploymen...
[GUTS-RS] Evento Setembro 2017 - Continuous Integration, Delivery e Deploymen...[GUTS-RS] Evento Setembro 2017 - Continuous Integration, Delivery e Deploymen...
[GUTS-RS] Evento Setembro 2017 - Continuous Integration, Delivery e Deploymen...
 
[GUTS-RS] GUDay 2017: Qualidade impulsionando negócios, criando marcas e prod...
[GUTS-RS] GUDay 2017: Qualidade impulsionando negócios, criando marcas e prod...[GUTS-RS] GUDay 2017: Qualidade impulsionando negócios, criando marcas e prod...
[GUTS-RS] GUDay 2017: Qualidade impulsionando negócios, criando marcas e prod...
 
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
 
[GUTS-RS] GUTS Talks - Soft Skills
[GUTS-RS] GUTS Talks - Soft Skills[GUTS-RS] GUTS Talks - Soft Skills
[GUTS-RS] GUTS Talks - Soft Skills
 
[GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development
[GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development[GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development
[GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development
 
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
 
[GUTS-RS] Mobile Testing
[GUTS-RS] Mobile Testing[GUTS-RS] Mobile Testing
[GUTS-RS] Mobile Testing
 
[GUTS-RS] GUTS Talks - Ferramentas de Automação de Testes
[GUTS-RS] GUTS Talks - Ferramentas de Automação de Testes[GUTS-RS] GUTS Talks - Ferramentas de Automação de Testes
[GUTS-RS] GUTS Talks - Ferramentas de Automação de Testes
 
[GUTS-RS] Práticas de desenvolvimento aplicadas na automação de testes com Se...
[GUTS-RS] Práticas de desenvolvimento aplicadas na automação de testes com Se...[GUTS-RS] Práticas de desenvolvimento aplicadas na automação de testes com Se...
[GUTS-RS] Práticas de desenvolvimento aplicadas na automação de testes com Se...
 

[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis com Appium

  • 1. #gutsrs /@gutsrs Workshop (prático) de Testes Automatizados para dispositivos móveis com Appium Elias Nogueira
  • 2. Sobre o GUTS-RS • GUTS-RS: Grupo de Usuários de Testes de Software do RS • Criado em: agosto/2008 • Objetivo: compartilhar o uso de métodos, processos e ferramentas de Teste de Software e promover discussões sobre a aplicação das melhores práticas de teste e qualidade utilizadas no mercado • Público Alvo: Gerentes, Analistas de Testes, Testadores, Desenvolvedores e demais profissionais e estudantes interessados na área • Coordenação: Aline Zanin, Cíntia Armesto, Diraci Júnior, Eduardo Oliveira, Gabriel Oliveira e Moisés Ramírez
  • 3. Canais de Comunicação http://guts-rs.blogspot.com.br/ @gutsrs guts-rs-sucesu@googlegroups.com Grupo de Usuários de Testes de Software do RS Guts RS GUTS / RS http://pt.slideshare.net/GUTS-RS Testando no Bar – Porto Alegre
  • 4. Comunicados • Submissão de Palestras 2015 – DOJO – Fishbowl – Palestra – TCC – Testing Games – Workshop – Outros • Casos de Família de QA • Organização de eventos presenciais - 2015/2 • Assinar a lista de presença • Preencher a Ficha do Evento
  • 5. Próximos Eventos • [Agosto]: Agile Testing Coach • [Setembro]: Arquitetura de testes de software • Backlog – BDD com Cucumber – Mão na massa com Protractor – É possível MVP com qualidade? – Automação de Teste de Software com Sikuli Script – Virose Waterfall no corpinho de Agile: problemas e soluções
  • 6. Próximos Hangouts • [Julho]: Gestão de testes (29/07) • Backlog – Futuro do Teste de Software (Agosto) – What is the importance of speaking English in our testing market today (Setembro) – Cloud Testing (Outubro) – Hangout Feminino (Dezembro)
  • 7. Programação • 19h15 às 19h45 Recepção, boas vindas e Coffee para integração • 19h45 às 19h55 Abertura do evento, apresentação do GUTS-RS e expectativas do evento • 19h55 às 21h30 Workshop (Elias Nogueira)
  • 10. Introdução ao Appium Neste tópico falaremos o que é o Appium e como ele funciona
  • 11. Introdução a Appium Appium é uma ferramenta open source para automatizar: •Aplicações mobile nativas ou híbridas para iOS, Android •Aplicações web mobile para os browsers nativos do iOS, Android ou Google Chrome
  • 12. Diferentes Tipos de Apps Nativo iOS Híbrida Nativo Android
  • 13. Introdução a Appium Appium também é multi-plataforma, ou seja, podemos escrever um único código que executa em iOS, Android usando a mesma API
  • 14. Arquitetura WebDriver Interface Json Wired Protocol Android (4.2+) UiAutomator iOS (até 8.1) UIAutomator Selendroid (<2.3+) Instrumetation (para dispositivos antigos)
  • 15. 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 dispositivo
  • 16. 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 dispositivo 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
  • 17. Conceito Sessão •Toda a comunicação com um dispositivo é aberta através de uma sessão (session) para cada biblioteca (linguagem) utilizada •Esta requisição é um POST com um objeto JSON enviando as capacidades desejadas (Desired Capabilities) •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 dispositivo
  • 18. Conceito Desired Capabilities •É 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 (dispositivo) que seja um IOS ou Android, e até mesmo especificar a versão de ambos
  • 19. 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 dispositivo •O Appium.app, aplicação desktop, já tem o node.js embutido para a execução do servidor do Appium
  • 20. Conceito Appium Client •São as bibliotecas para que possamos escrever os testes em diferentes linguagens de programação suportadas
  • 21. 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
  • 23. Dinâmica Neste tópico falaremos sobre a dinâmica de automação com o Appium
  • 24. Dinâmica A seguinte dinâmica será adotada: • Apresentação de cada ponto sobre Appium • Instalação da app • Inserção das DesiredCapabilities • Inserção da interação com a app • Inserção das validações • Execução do script • Exercício(s)
  • 25. Passos de Automação Nós executaremos os seguintes passos para automatizar os testes: 1. Executar o teste manualmente no dispositivo 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 automatizado 1. Abrir e iniciar o Appium.app 2. Executar o script de teste
  • 26. Mas antes... testes do ambiente! Vamos testar para saber se você configurou seu ambiente
  • 27. Testes do Ambiente Todos acessaram um link de pré condições http://qualister.info/workshops/appium/pre_condicoes/ Aqueles que não o fizeram, infelizmente, não será dado suporte no Exercício(s) 
  • 28. Java Digite a palavra java e pressione ENTER no Prompt de Comando Resultado Esperado: um monte de palavras em inglês começando com “-”
  • 29. Android Digite a palavra android sdk e pressione ENTER no Prompt de Comando Resultado Esperado: abertura da janela Android SDK Manager
  • 30. Android Digite a palavra android avd e pressione ENTER no Prompt de Comando Resultado Esperado: abertura da janela Android Virtual Device (AVD) Manager
  • 31. Android Digite a palavra adb e pressione ENTER no Prompt de Comando Resultado Esperado: Um log de todos os parâmetros do adb
  • 32. Configurações Neste tópico falaremos sobre como configurar o projeto e o Appium.app
  • 33. Configurações 1. Crie uma pasta no C: com o nome “Appium_drivers” contendo: • Arquivo java-client-3.0.0.jar • Arquivo selenium-server-standalone.2.46.0.jar 2. Copiar os arquivos .apk (aplicações) para a pasta “Appium_drivers” 1. Criar um projeto no Eclipse IDE com nome “Exemplo_Appium” • Menu File -> New -> Java Project • Informar o nome “Exemplo_Appium” e clicar em Finish
  • 34. Configurações 4. Adicione as bibliotecas no Build Path do projeto no Eclipse IDE: 1. Menu File -> Properties 2. Selecionar “Java Build Path” no canto esquerdo e clicar na aba “Libraries” 3. Clicar no botão “Add External JARs...” 4. Selecionar o arquivo “java-client-3.0.0.jar” e clicar em OK 5. Repetir o passo 3 e 4, selecionando o arquivo “selenium-server-standalone- 2.46.0.jar”
  • 35. Configurações 5. Criação da estrutura para o script: • Abrir a pasta “Exemplo_Appium”, clicar na pasta “src” • Clicar no menu File -> New -> Package • Informar no campo Name: teste.triangulo 6. Criação do script • Clique no pacote criado (teste.triangulo) • Clicar no menu File -> New -> JUnit Test Case • Informar o Name: TrianguloTeste • Marcar as opções setup() e tearDown() e clicar em Finish • Se aparecer uma janela do JUnit, clique em OK
  • 36. Configurações 7. Alterar as configurações do Appium: • Clicar no botão “General Settings” e marcar a opção “Override Existing Session” • Clicar no botão “Android Settings” , marcar a opção “Device Name” e preencher com “Android Emulator”
  • 37. Automação com Appium Neste tópico falaremos como automatizar as apps mobile utilizando o Appium e Java
  • 38. Dinâmica Podemos separar o desenvolvimento de um script com Appium em 6 pontos: 1. Instalação da app 2. Inserção das DesiredCapabilities 3. Abertura da conexão com o dispositivo 4. Localização dos componentes 5. Interação com os componentes 6. Validação dos resultados
  • 39. 1. Instalação da app No Appium podemos sempre instalar a aplicação (fresh install) ou utilizar a app já instalada no dispositivo Nosso foco será sempre instalar a aplicação a cada teste Para isso utilizaremos a classe File do Java para informar onde o arquivo .apk está para que ele seja instalado automaticamente antes da execução do teste
  • 40. 1. Instalação da app Na classe TesteTriangulo iremos escrever o código da pré- instalação da app no @Before, que é um pré condição
  • 41. 2. Inserção das DesiredCapabilities As DesiredCapabilities são as capacidades que informaremos ao Appium. Elas podem ser do servidor ou da plataforma. Exemplos de capacidades • Plataforma: Android ou iOS • Versão da Plataforma: “4.4” (Android) , “8.1” (iOS) • Idioma: pt_BR • APP: C:diretorioMeuApp.apk A lista das capacidades do servidor ou plataforma pode ser visualizada nos links abaixo: • Servidor: http://appium.io/slate/en/master/?ruby#appium-server-capabilities • Plataforma Android: http://appium.io/slate/en/master/?ruby#android-only
  • 42. 2. Inserção das DesiredCapabilities O ponto de partida é a criação da instância Depois é necessário utilizar o método setCapability para informar as capacidades básicas O Appium já possui uma classe chamada MobileCapabilityType com todas as capacidades
  • 43. 2. Inserção das DesiredCapabilities Na classe TesteTriangulo iremos escrever o código das Capacidades para execução no Android, em dispositivo emulado e na aplicação TrianguloApp.apk
  • 44. 3. Abertura da conexão com o dispositivo Depois de ter informado qual aplicação será testada e as capacidades é hora de comunicar com o dispositivo. Isso é feito através da classe AndroidDriver Ela é responsável por abrir uma conexão com os dispositivos Android
  • 45. 3. Abertura da conexão com o dispositivo Precisamos informar três itens diferentes para o AndroidDriver: • Tipo de Elemento • URL de conexão com Appium • Capacidades O Tipo do Elemento está como WebElement (genérico) mas pode ser também um MobileElement A URL de conexão é o IP do servidor do Appium mais a porta e o contexto de conexão (wd/hub). O padrão é usar o Appium localmente (127.0.0.1) na sua porta padrão (4732) As Capacidades foram as criadas anteriormente para que possamos enviar algumas configurações
  • 46. Na classe TesteTriangulo iremos escrever a conexão do Appium com o dispositivo: 3. Abertura da conexão com o dispositivo
  • 47. 3. Abertura da conexão com o dispositivo A execução, mesmo com o teste vazio, vai abrir a app no dispositivo, mas para isso é necessário iniciar primeiro o Appium.app Clique no botão Launch the Appium Node Server e espere a inicialização do servidor Agora clique no menu Run/Run no Eclipse IDE e veja o resultado
  • 48. 4. Localização dos componentes Faça um teste manual na aplicação TrianguloApp •Informar “3” no Lado 1 •Informar “3” no Lado 1 •Informar “3” no Lado 1 •Clicar no botão Calcular
  • 49. 4. Localização dos componentes Para escrever o código que irá localizar cada componente é necessário usar o apelido do AndroidDriver e o método findElement É possível localizar o através de várias formas...
  • 50. 4. Localização dos componentes Nós iremos localizar todos os componentes pelo ID Para descobrir o ID dos componentes iremos utilizar o uiautomatorviewer que é um visualizador de componentes e de suas propriedades no Android
  • 51. 4. Localização dos componentes Digite uiautomatorviewer no Prompt de Comando A janela mostra o que está sendo exibido no dispositivo Captur a da tela Captura do dispositivo Árvore de componentes Propriedade dos componentes
  • 52. 4. Localização dos componentes Para localizar um componente por ID basta clicar sobre ele e visualizar o atributo resource-id
  • 53. 5. Interação com os componentes Colocamos uma interação logo no final da localização do componente, podendo ser: Método Suportado? clear() Limpa um campo de texto click() Clica em determinado componente sendKeys(“texto” ) Insere texto em um campo de texto getText() Retorna o texto de algum componente
  • 54. 5. Interação com os componentes Na classe TesteTriangulo adicionar e localização e interação com os componentes: • Preencher Lado1, Lado2, Lado3 com “3” • Clicar no botão Calcular Substituir os IDs pelo resource-id de cada componente Inspecionando pelo uiautomatorviewer
  • 55. 6. Validação dos resultados Toda execução, até este momento, apenas executa ações no dispositivo, mas não faz validações dos resultados obtidos Para isso usaremos a função assertEquals para comparar o resultado esperado com o obtido da aplicação no dispositivo
  • 56. 6. Validação dos resultados Na classe TesteTriangulo insira a validação para o resultado “O triângulo é Equilátero”
  • 57. Fechando a aplicação Para que ele feche a aplicação automaticamente a cada teste, basta adicionar um comando na pós condição (@After)
  • 58. EXERCÍCIO Crie mais dois testes, um para o triângulo isósceles e outro para triângulo escaleno (não vale CRTL + C e CTRL + V)
  • 59. EXERCÍCIO Utilize todo o conhecimento adquirido para automatizar a aplicação Fastip, com os seguintes testes: Teste 1 – Calcular Gorjeta •Informar o valor R$ 100 em Valor da Conta •Clicar em Calcular •Validar os seguintes resultados: • % Gorjeta • Total Gorjeta • Valor Total Teste 2 – Alterar % da Gorjeta •Clicar nas Configurações •Colocar o valor 10 em % Gorjeta •Clicar em Salvar Na tela de calcula da gorjeta.... •Informar o valor R$ 200 em Valor da Conta •Clicar em Calcular •Validar os seguintes resultados: • % Gorjeta • Total Gorjeta • Valor Total
  • 60. O Projeto completo está no GitHub https://github.com/qualister- consultoria/workshop-appium-android