automação de teste para rest, web e mobile
Post on 14-Jan-2017
731 Views
Preview:
TRANSCRIPT
AUTOMAÇÃO DE TESTE PARAREST | 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 FERRAMENTASA seleção das ferramentas corretas é um ponto chave no seu processo de automação
4
API RESTDocumentação da API alvo dos testes
Exemplo URL Verbo O que faz
/api/person /api/person GET Listar pessoas
/api/person/:id /api/person/27 GET Retornar a pessoa pelo id
/api/person /api/person POST Adicionar as pessoas
/api/person/:id /api/person/33 PUT Atualizar uma pessoa pelo id
/api/person/:id /api/person/52 DELETE Remover uma pessoa pelo id
5
AUTOMAÇÃO DE SERVIÇOS RESTAtualmente 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 RESTA 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 RESTPorque você não vai testar em produção, correto?
Exemplo de um mock com com dados fixosUsar 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 RESTPorque você não vai testar em produção, correto?
Exemplo de um mock com com dados dinâmicosDependendo 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 RESTNos 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 testesAbordagem obrigatória e automatizada para iniciar seus
testes utilizando o mock com Spark
12
AUTOMAÇÃO DE SERVIÇOS RESTO RESTAssured possui uma API fluente para automação dos serviços REST
Exemplo de um teste automatizado com RESTAssuredUm 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 HTMLNativa do browserFirebug
[ProTip ]Algum software para mudar a velocidade de conexão
15
INSPECIONANDO ELEMENTOSMétodo para obter a forma de localizá-lo para interação futura
Botão de inspeção
16
PROCESSO DE AUTOMAÇÃOO 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çãoFormas de localizar um elemento webid, name, cssSelector, xpath
Interrogação
Esperas por elementos dinâmicos e/ou requisições
assíncronas baseadas em elementos
SincronizaçãoForma de interagir com os elementosclick, clear, sendKeys, getText
Manipulação
1 2
34
17
AUTOMAÇÃO DE TESTE WEBO Selenium WebDriver possui uma API de fácil entendimento
Exemplo de um teste automatizado com Selenium WebDriverExemplo completo com navegação, interrogação, manipulação e sincronização
18
12
34
Usar Page Objects para modularizar os testes
Abusar dos Padrões de Projeto para facilitar a manutençãoExecute o teste em uma velocidade de internet menorUse XPATH somente quando necessário
DICAS PARA AUTOMAÇÃO WEBPara 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 TESTSUITE 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 COMPONENTESPodemos inspecionar através do uiautomatorviewer
Botão de inspeção
Componente Inspecionado
Atributos do componente
23
PROCESSO DE AUTOMAÇÃOSérie de passos para criação do script de automação com Appium
Script de Teste com Appium
Definição de dados padrãoplataforma, dispositivo, app)
DesiredCapabilitiesAbrir a conexão com o dispositivovia Appium.app ou Nodejs
Sessão
Esperas por elementos dinâmicos e/ou requisições
assíncronas baseadas em elementos
SincronizaçãoLocalizar e interagir com componentesMesma forma do Selenium WebDriver
Interrogação e Manipulação
1 2
34
24
AUTOMAÇÃO DE TESTE MOBILETirando o DesiredCapabilities e Sessão não é igual ao Selenium?
Exemplo de script para um app pré instaladaExemplo completo de um teste em uma app Android
25
DICAS PARA AUTOMAÇÃO MOBILEPara ter scripts de automação mobile mais profissional
12
34
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.com
@eliasnogueira
fb.com/elias.nogueira.teste
https://github.com/eliasnogueira/javaone-testing-automation
top related