SlideShare una empresa de Scribd logo
1 de 26
AUTOMAÇÃO DE TESTE PARA
REST | WEB | MOBILE
E L I A S N O G U E I R A
@ e l i a s n o g u e i r a
Elias Nogueira
@eliasnogueira
Sênior QA Engineer, Agile Coach & Trainer - Adaptworks
Professor de Pós Graduação – Unisinos/RS
Coordenador da Trilha de Teste - The Developers Conference
3
Validação intermediária entre
back e front end
Teste no serviço REST
Para garantir a estabilidade
durante os ciclos contínuos
Mock do serviço REST
Testes Funcionais e
Aceitação na interface Mobile
Teste na camada Mobile
Testes Funcionais e
Aceitação na Interface Web
Teste na camada Web
CONJUNTO DE FERRAMENTAS
A seleção das ferramentas corretas é um ponto chave no seu processo de automação
4
API REST
Documentação da API alvo dos testes
ExemploURLVerboO que faz
/api/person/api/personGETListar pessoas
/api/person/:id/api/person/27GETRetornar a pessoa pelo id
/api/person/api/personPOSTAdicionar as pessoas
/api/person/:id/api/person/33PUTAtualizar uma pessoa pelo id
/api/person/:id/api/person/52DELETERemover uma pessoa pelo id
5
AUTOMAÇÃO DE SERVIÇOS REST
Atualmente uma das camadas mais importantes da aplicação
Os testes são tão necessários quanto na camada visual
Sempre validar as transações de negócio
Em novos serviços, sempre validar manualmente primeiro
CURL (CLI)
PostMan (Google Chrome)
RESTClient (Firefox)
6
MOCK DE SERVIÇOS REST
A forma mais fácil e rápida de criar mocks em Java
Microframework com o poder do Java 8
Ótima pedida para criar micro serviços
Fácil implementação para criar serviços REST
http://sparkjava.com
7
MOCK DE SERVIÇOS REST
Porque você não vai testar em produção, correto?
Exemplo de um mock com com dados fixos
Usar dados fixos pode ser uma boa pedida para não ter
grandes manutenções no seu código de mock
8
MOCK DE SERVIÇOS REST
Porque você não vai testar em produção, correto?
Exemplo de um mock com com dados dinâmicos
Dependendo da complexidade de seu código e conjunto de massa
de dados podemos criar uma abordagem com dados pré-definidos
REST
ASSURED
DSL de fácil utilização para automatizar serviços REST
Sintaxe de give-when-then
https://github.com/jayway/rest-assured
10
O QUE EU PRECISO?
O que é necessário para escrever um teste com RESTAssured
Importar um conjunto de classes estáticas
Informar URL Base, contexto de acesso e porta (se necessário)
import static com.jayway.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
baseURI = "http://localhost";
basePath = "/api";
port = 4567;
11
AUTOMAÇÃO DE SERVIÇOS REST
Nos métodos de pré e pós condição apontamos a URL principal, iniciamos e fechamos o Mock com Spark
Pré e Pós condição antes de cada testes
Abordagem obrigatória e automatizada para iniciar seus
testes utilizando o mock com Spark
12
AUTOMAÇÃO DE SERVIÇOS REST
O RESTAssured possui uma API fluente para automação dos serviços REST
Exemplo de um teste automatizado com RESTAssured
Um GET sendo enviado com ID 1 (when) e os dados de
retorno sendo validados na body do retorno (then)
SELENIUM
WEBDRIVER
API para automação em browser web reais
Diferentes linguagens suportadas
http://seleniumhq.org
Virando um padrão W3C
Simula um usuário real
14
O QUE EU PRECISO?
O que é necessário para escrever um teste com Selenium WebDriver
Browser alvo instalado
Alguma ferramenta de inspeção de código HTML
Nativa do browser
Firebug
[ProTip] Algum software para mudar a velocidade de conexão
15
INSPECIONANDO ELEMENTOS
Método para obter a forma de localizá-lo para interação futura
Botão de
inspeção
16
PROCESSO DE AUTOMAÇÃO
O Selenim WebDriver possui um pequeno processo simples e fácil de lembrar
Script de Teste
com Selenium
Inicialização do browser e controles
de navegação (back, forward,
refresh)
Navegação
Formas de localizar um elemento
web
id, name, cssSelector, xpath
Interrogação
Esperas por elementos dinâmicos
e/ou requisições assíncronas
baseadas em elementos
Sincronização
Forma de interagir com os elementos
click, clear, sendKeys, getText
Manipulação
1
2
3
4
17
AUTOMAÇÃO DE TESTE WEB
O Selenium WebDriver possui uma API de fácil entendimento
Exemplo de um teste automatizado com Selenium WebDriver
Exemplo completo com navegação, interrogação, manipulação e sincronização
18
1
2
3
4
Usar Page Objects para modularizar os testes
Abusar dos Padrões de Projeto para facilitar a manutenção
Execute o teste em uma velocidade de internet menor
Use XPATH somente quando necessário
DICAS PARA AUTOMAÇÃO WEB
Para uma automação de teste web mais profissional
19
DICA PARA SUITE DE TESTE WEB
É importante dividir os testes em suítes específicas para um maior retorno e velocidade de feedback
HEADLESS TEST ACCEPTANCE TEST FUNCTIONAL TEST
SUITE DE AUTOMAÇÃO DE
TESTE
1 2 3 4
DAR VELOCIDADE E FEEDBACK MAIS RÁPIDO NOS CICLOS CONTÍNUOS
VALIDAR O SISTEMA COMO A UTILIZACÃO DE UM USUÁRIO
VALIDAR NA PERSPECTIVA DE REGRAS DE NEGÓCIO
1
2
3
APPIUM
API para automação para dispositivos mobile
Suporta Android e iOS
http://appium.io
Executa em emuladores ou dispositivos
Teste em aplicações nativas ou híbridas
21
O QUE EU PRECISO?
O que é necessário para escrever um teste com Appium
Android SDK
Appium (via Appium.app ou Nodejs)
Configurar PATHS (tools / platform-tools)
SDK Platform + System Image
Emulador / Simulador ou Dispositivo
22
INSPECIONANDO COMPONENTES
Podemos inspecionar através do uiautomatorviewer
Botão de
inspeção
Componente
Inspecionado
Atributos do
componente
23
PROCESSO DE AUTOMAÇÃO
Série de passos para criação do script de automação com Appium
Script de Teste
com Appium
Definição de dados padrão
plataforma, dispositivo, app)
DesiredCapabilities
Abrir a conexão com o dispositivo
via Appium.app ou Nodejs
Sessão
Esperas por elementos dinâmicos
e/ou requisições assíncronas
baseadas em elementos
Sincronização
Localizar e interagir com componentes
Mesma forma do Selenium WebDriver
Interrogação e Manipulação
1
2
3
4
24
AUTOMAÇÃO DE TESTE MOBILE
Tirando o DesiredCapabilities e Sessão não é igual ao Selenium?
Exemplo de script para um app pré instalada
Exemplo completo de um teste em uma app Android
25
DICAS PARA AUTOMAÇÃO MOBILE
Para ter scripts de automação mobile mais profissional
1
2
3
4
Execute testes instalando a app e com ela pré instalada
Crie uma suíte focada no usuário final
Teste em diferentes redes (Wi-Fi, 3G…)
Teste requisitos não funcionais
Obrigado pela
presença!
Código completo de exemplo disponível no GitHub
http://eliasnogueira.com elias.nogueira@gmail.co
m
@eliasnogueira fb.com/elias.nogueira.teste
https://github.com/eliasnogueira/javaone-testing-automation

Más contenido relacionado

La actualidad más candente

API Test Automation
API Test Automation API Test Automation
API Test Automation SQALab
 
Arquitetura de Automação de Teste
Arquitetura de Automação de TesteArquitetura de Automação de Teste
Arquitetura de Automação de TesteElias Nogueira
 
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
 
Como criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressComo criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressWalmyr Lima e Silva Filho
 
API Automation Testing Using RestAssured+Cucumber
API Automation Testing Using RestAssured+CucumberAPI Automation Testing Using RestAssured+Cucumber
API Automation Testing Using RestAssured+CucumberKnoldus Inc.
 
Swagger / Quick Start Guide
Swagger / Quick Start GuideSwagger / Quick Start Guide
Swagger / Quick Start GuideAndrii Gakhov
 
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and MockitoAn Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockitoshaunthomas999
 
Swagger - make your API accessible
Swagger - make your API accessibleSwagger - make your API accessible
Swagger - make your API accessibleVictor Trakhtenberg
 
Test Automation and Selenium
Test Automation and SeleniumTest Automation and Selenium
Test Automation and SeleniumKarapet Sarkisyan
 
QA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. SeleniumQA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. SeleniumLyudmil Latinov
 
Web automation using selenium.ppt
Web automation using selenium.pptWeb automation using selenium.ppt
Web automation using selenium.pptAna Sarbescu
 
Selenium Tutorial Java
Selenium Tutorial  JavaSelenium Tutorial  Java
Selenium Tutorial JavaAhmed HARRAK
 
The history of selenium
The history of seleniumThe history of selenium
The history of seleniumArun Motoori
 
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Moataz Nabil
 
Test in Rest. API testing with the help of Rest Assured.
Test in Rest. API testing with the help of  Rest Assured.Test in Rest. API testing with the help of  Rest Assured.
Test in Rest. API testing with the help of Rest Assured.Artem Korchevyi
 
40+ tips to use Postman more efficiently
40+ tips to use Postman more efficiently40+ tips to use Postman more efficiently
40+ tips to use Postman more efficientlypostmanclient
 
Test Design and Automation for REST API
Test Design and Automation for REST APITest Design and Automation for REST API
Test Design and Automation for REST APIIvan Katunou
 

La actualidad más candente (20)

API Test Automation
API Test Automation API Test Automation
API Test Automation
 
Arquitetura de Automação de Teste
Arquitetura de Automação de TesteArquitetura de Automação de Teste
Arquitetura de Automação de Teste
 
Rest assured
Rest assuredRest assured
Rest assured
 
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
 
Como criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressComo criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com Cypress
 
API Automation Testing Using RestAssured+Cucumber
API Automation Testing Using RestAssured+CucumberAPI Automation Testing Using RestAssured+Cucumber
API Automation Testing Using RestAssured+Cucumber
 
Swagger / Quick Start Guide
Swagger / Quick Start GuideSwagger / Quick Start Guide
Swagger / Quick Start Guide
 
Test Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and CucumberTest Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and Cucumber
 
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and MockitoAn Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
 
Swagger - make your API accessible
Swagger - make your API accessibleSwagger - make your API accessible
Swagger - make your API accessible
 
Test Automation and Selenium
Test Automation and SeleniumTest Automation and Selenium
Test Automation and Selenium
 
QA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. SeleniumQA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. Selenium
 
Postman
PostmanPostman
Postman
 
Web automation using selenium.ppt
Web automation using selenium.pptWeb automation using selenium.ppt
Web automation using selenium.ppt
 
Selenium Tutorial Java
Selenium Tutorial  JavaSelenium Tutorial  Java
Selenium Tutorial Java
 
The history of selenium
The history of seleniumThe history of selenium
The history of selenium
 
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
 
Test in Rest. API testing with the help of Rest Assured.
Test in Rest. API testing with the help of  Rest Assured.Test in Rest. API testing with the help of  Rest Assured.
Test in Rest. API testing with the help of Rest Assured.
 
40+ tips to use Postman more efficiently
40+ tips to use Postman more efficiently40+ tips to use Postman more efficiently
40+ tips to use Postman more efficiently
 
Test Design and Automation for REST API
Test Design and Automation for REST APITest Design and Automation for REST API
Test Design and Automation for REST API
 

Similar a AUTOMAÇÃO DE TESTE PARA REST | WEB | MOBILE

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
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliverySamanta Cicilia
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSFabrício Campos
 
Tipos de automação de teste
Tipos de automação de testeTipos de automação de teste
Tipos de automação de testeMarcos Pessoa
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyRelsi Maron
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end seleniumQualister
 
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
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes AutomatizadosSamanta Cicilia
 
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
 
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Elias Nogueira
 
Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app HíbridaElias Nogueira
 
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
 
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
 
Testando aplicações DataSnap
Testando aplicações DataSnapTestando aplicações DataSnap
Testando aplicações DataSnapAndreano Lanusse
 
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...Samanta Cicilia
 
Introdução ASP.NET Core
Introdução ASP.NET CoreIntrodução ASP.NET Core
Introdução ASP.NET Corelacerda2
 

Similar a AUTOMAÇÃO DE TESTE PARA REST | WEB | MOBILE (20)

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
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous Delivery
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATS
 
Tipos de automação de teste
Tipos de automação de testeTipos de automação de teste
Tipos de automação de teste
 
QAOps - Agile Trends 2021
QAOps - Agile Trends 2021QAOps - Agile Trends 2021
QAOps - Agile Trends 2021
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2py
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
Desafio Rest API
Desafio Rest APIDesafio Rest API
Desafio Rest API
 
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
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados
 
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
 
Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5
 
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
 
Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app Híbrida
 
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
 
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
 
Testando aplicações DataSnap
Testando aplicações DataSnapTestando aplicações DataSnap
Testando aplicações DataSnap
 
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
 
Introdução ASP.NET Core
Introdução ASP.NET CoreIntrodução ASP.NET Core
Introdução ASP.NET Core
 
Apresentação acadêmica RASEA
Apresentação acadêmica RASEAApresentação acadêmica RASEA
Apresentação acadêmica RASEA
 

Más de Elias Nogueira

API Testing following the Test Pyramid
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test PyramidElias Nogueira
 
Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testesElias Nogueira
 
Coach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o timeCoach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o timeElias Nogueira
 
O Agile Coach pode (e muitas vezes deve) ser técnico
O Agile Coach pode (e muitas vezes deve) ser técnicoO Agile Coach pode (e muitas vezes deve) ser técnico
O Agile Coach pode (e muitas vezes deve) ser técnicoElias Nogueira
 
Create an architecture for web test automation
Create an architecture for web test automationCreate an architecture for web test automation
Create an architecture for web test automationElias Nogueira
 
Como 4 Agile Coaches trabalham em uma Transformação Ágil
Como 4 Agile Coaches trabalham em uma Transformação Ágil Como 4 Agile Coaches trabalham em uma Transformação Ágil
Como 4 Agile Coaches trabalham em uma Transformação Ágil Elias Nogueira
 
Papel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilElias Nogueira
 
BDD não é automação de teste - Scrum Gathering
BDD não é automação de teste - Scrum GatheringBDD não é automação de teste - Scrum Gathering
BDD não é automação de teste - Scrum GatheringElias Nogueira
 
Como criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersComo criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersElias Nogueira
 
Improve Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - TestsImprove Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - TestsElias Nogueira
 
BDD não é Automação de Testes
BDD não é Automação de TestesBDD não é Automação de Testes
BDD não é Automação de TestesElias Nogueira
 
Criando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com AppiumCriando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com AppiumElias Nogueira
 
Como ter sucesso ministrando uma palestra técnica
Como ter sucesso ministrando uma palestra técnicaComo ter sucesso ministrando uma palestra técnica
Como ter sucesso ministrando uma palestra técnicaElias Nogueira
 
Quais são os steps de que deve conter na sua pipeline?
Quais são os steps de que deve conter na sua pipeline?Quais são os steps de que deve conter na sua pipeline?
Quais são os steps de que deve conter na sua pipeline?Elias Nogueira
 
Testes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoElias Nogueira
 
Coaching the Agile Coach
Coaching the Agile CoachCoaching the Agile Coach
Coaching the Agile CoachElias Nogueira
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileElias Nogueira
 
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationTrust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationElias Nogueira
 
O que é um Agile Coach
O que é um Agile CoachO que é um Agile Coach
O que é um Agile CoachElias Nogueira
 

Más de Elias Nogueira (20)

API Testing following the Test Pyramid
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test Pyramid
 
Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testes
 
Coach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o timeCoach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o time
 
O Agile Coach pode (e muitas vezes deve) ser técnico
O Agile Coach pode (e muitas vezes deve) ser técnicoO Agile Coach pode (e muitas vezes deve) ser técnico
O Agile Coach pode (e muitas vezes deve) ser técnico
 
Create an architecture for web test automation
Create an architecture for web test automationCreate an architecture for web test automation
Create an architecture for web test automation
 
Como 4 Agile Coaches trabalham em uma Transformação Ágil
Como 4 Agile Coaches trabalham em uma Transformação Ágil Como 4 Agile Coaches trabalham em uma Transformação Ágil
Como 4 Agile Coaches trabalham em uma Transformação Ágil
 
Papel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação Ágil
 
BDD não é automação de teste - Scrum Gathering
BDD não é automação de teste - Scrum GatheringBDD não é automação de teste - Scrum Gathering
BDD não é automação de teste - Scrum Gathering
 
Como criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersComo criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containers
 
Improve Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - TestsImprove Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - Tests
 
BDD não é Automação de Testes
BDD não é Automação de TestesBDD não é Automação de Testes
BDD não é Automação de Testes
 
Criando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com AppiumCriando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com Appium
 
Como ter sucesso ministrando uma palestra técnica
Como ter sucesso ministrando uma palestra técnicaComo ter sucesso ministrando uma palestra técnica
Como ter sucesso ministrando uma palestra técnica
 
Quais são os steps de que deve conter na sua pipeline?
Quais são os steps de que deve conter na sua pipeline?Quais são os steps de que deve conter na sua pipeline?
Quais são os steps de que deve conter na sua pipeline?
 
Tem que testar mesmo?
Tem que testar mesmo?Tem que testar mesmo?
Tem que testar mesmo?
 
Testes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamento
 
Coaching the Agile Coach
Coaching the Agile CoachCoaching the Agile Coach
Coaching the Agile Coach
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and Mobile
 
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationTrust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
 
O que é um Agile Coach
O que é um Agile CoachO que é um Agile Coach
O que é um Agile Coach
 

AUTOMAÇÃO DE TESTE PARA REST | WEB | MOBILE

  • 1. AUTOMAÇÃO DE TESTE PARA REST | WEB | MOBILE E L I A S N O G U E I R A @ e l i a s n o g u e i r a
  • 2. Elias Nogueira @eliasnogueira Sênior QA Engineer, Agile Coach & Trainer - Adaptworks Professor de Pós Graduação – Unisinos/RS Coordenador da Trilha de Teste - The Developers Conference
  • 3. 3 Validação intermediária entre back e front end Teste no serviço REST Para garantir a estabilidade durante os ciclos contínuos Mock do serviço REST Testes Funcionais e Aceitação na interface Mobile Teste na camada Mobile Testes Funcionais e Aceitação na Interface Web Teste na camada Web CONJUNTO DE FERRAMENTAS A seleção das ferramentas corretas é um ponto chave no seu processo de automação
  • 4. 4 API REST Documentação da API alvo dos testes ExemploURLVerboO que faz /api/person/api/personGETListar pessoas /api/person/:id/api/person/27GETRetornar a pessoa pelo id /api/person/api/personPOSTAdicionar as pessoas /api/person/:id/api/person/33PUTAtualizar uma pessoa pelo id /api/person/:id/api/person/52DELETERemover uma pessoa pelo id
  • 5. 5 AUTOMAÇÃO DE SERVIÇOS REST Atualmente uma das camadas mais importantes da aplicação Os testes são tão necessários quanto na camada visual Sempre validar as transações de negócio Em novos serviços, sempre validar manualmente primeiro CURL (CLI) PostMan (Google Chrome) RESTClient (Firefox)
  • 6. 6 MOCK DE SERVIÇOS REST A forma mais fácil e rápida de criar mocks em Java Microframework com o poder do Java 8 Ótima pedida para criar micro serviços Fácil implementação para criar serviços REST http://sparkjava.com
  • 7. 7 MOCK DE SERVIÇOS REST Porque você não vai testar em produção, correto? Exemplo de um mock com com dados fixos Usar dados fixos pode ser uma boa pedida para não ter grandes manutenções no seu código de mock
  • 8. 8 MOCK DE SERVIÇOS REST Porque você não vai testar em produção, correto? Exemplo de um mock com com dados dinâmicos Dependendo da complexidade de seu código e conjunto de massa de dados podemos criar uma abordagem com dados pré-definidos
  • 9. REST ASSURED DSL de fácil utilização para automatizar serviços REST Sintaxe de give-when-then https://github.com/jayway/rest-assured
  • 10. 10 O QUE EU PRECISO? O que é necessário para escrever um teste com RESTAssured Importar um conjunto de classes estáticas Informar URL Base, contexto de acesso e porta (se necessário) import static com.jayway.restassured.RestAssured.*; import static org.hamcrest.Matchers.*; baseURI = "http://localhost"; basePath = "/api"; port = 4567;
  • 11. 11 AUTOMAÇÃO DE SERVIÇOS REST Nos métodos de pré e pós condição apontamos a URL principal, iniciamos e fechamos o Mock com Spark Pré e Pós condição antes de cada testes Abordagem obrigatória e automatizada para iniciar seus testes utilizando o mock com Spark
  • 12. 12 AUTOMAÇÃO DE SERVIÇOS REST O RESTAssured possui uma API fluente para automação dos serviços REST Exemplo de um teste automatizado com RESTAssured Um GET sendo enviado com ID 1 (when) e os dados de retorno sendo validados na body do retorno (then)
  • 13. SELENIUM WEBDRIVER API para automação em browser web reais Diferentes linguagens suportadas http://seleniumhq.org Virando um padrão W3C Simula um usuário real
  • 14. 14 O QUE EU PRECISO? O que é necessário para escrever um teste com Selenium WebDriver Browser alvo instalado Alguma ferramenta de inspeção de código HTML Nativa do browser Firebug [ProTip] Algum software para mudar a velocidade de conexão
  • 15. 15 INSPECIONANDO ELEMENTOS Método para obter a forma de localizá-lo para interação futura Botão de inspeção
  • 16. 16 PROCESSO DE AUTOMAÇÃO O Selenim WebDriver possui um pequeno processo simples e fácil de lembrar Script de Teste com Selenium Inicialização do browser e controles de navegação (back, forward, refresh) Navegação Formas de localizar um elemento web id, name, cssSelector, xpath Interrogação Esperas por elementos dinâmicos e/ou requisições assíncronas baseadas em elementos Sincronização Forma de interagir com os elementos click, clear, sendKeys, getText Manipulação 1 2 3 4
  • 17. 17 AUTOMAÇÃO DE TESTE WEB O Selenium WebDriver possui uma API de fácil entendimento Exemplo de um teste automatizado com Selenium WebDriver Exemplo completo com navegação, interrogação, manipulação e sincronização
  • 18. 18 1 2 3 4 Usar Page Objects para modularizar os testes Abusar dos Padrões de Projeto para facilitar a manutenção Execute o teste em uma velocidade de internet menor Use XPATH somente quando necessário DICAS PARA AUTOMAÇÃO WEB Para uma automação de teste web mais profissional
  • 19. 19 DICA PARA SUITE DE TESTE WEB É importante dividir os testes em suítes específicas para um maior retorno e velocidade de feedback HEADLESS TEST ACCEPTANCE TEST FUNCTIONAL TEST SUITE DE AUTOMAÇÃO DE TESTE 1 2 3 4 DAR VELOCIDADE E FEEDBACK MAIS RÁPIDO NOS CICLOS CONTÍNUOS VALIDAR O SISTEMA COMO A UTILIZACÃO DE UM USUÁRIO VALIDAR NA PERSPECTIVA DE REGRAS DE NEGÓCIO 1 2 3
  • 20. APPIUM API para automação para dispositivos mobile Suporta Android e iOS http://appium.io Executa em emuladores ou dispositivos Teste em aplicações nativas ou híbridas
  • 21. 21 O QUE EU PRECISO? O que é necessário para escrever um teste com Appium Android SDK Appium (via Appium.app ou Nodejs) Configurar PATHS (tools / platform-tools) SDK Platform + System Image Emulador / Simulador ou Dispositivo
  • 22. 22 INSPECIONANDO COMPONENTES Podemos inspecionar através do uiautomatorviewer Botão de inspeção Componente Inspecionado Atributos do componente
  • 23. 23 PROCESSO DE AUTOMAÇÃO Série de passos para criação do script de automação com Appium Script de Teste com Appium Definição de dados padrão plataforma, dispositivo, app) DesiredCapabilities Abrir a conexão com o dispositivo via Appium.app ou Nodejs Sessão Esperas por elementos dinâmicos e/ou requisições assíncronas baseadas em elementos Sincronização Localizar e interagir com componentes Mesma forma do Selenium WebDriver Interrogação e Manipulação 1 2 3 4
  • 24. 24 AUTOMAÇÃO DE TESTE MOBILE Tirando o DesiredCapabilities e Sessão não é igual ao Selenium? Exemplo de script para um app pré instalada Exemplo completo de um teste em uma app Android
  • 25. 25 DICAS PARA AUTOMAÇÃO MOBILE Para ter scripts de automação mobile mais profissional 1 2 3 4 Execute testes instalando a app e com ela pré instalada Crie uma suíte focada no usuário final Teste em diferentes redes (Wi-Fi, 3G…) Teste requisitos não funcionais
  • 26. Obrigado pela presença! Código completo de exemplo disponível no GitHub http://eliasnogueira.com elias.nogueira@gmail.co m @eliasnogueira fb.com/elias.nogueira.teste https://github.com/eliasnogueira/javaone-testing-automation