Automação de Teste para REST, Web e Mobile

672 visualizações

Publicada em

Palestra sobre Automação de Teste para REST, Web e Mobile utilizando APIs Java ministrada no JavaOne Latin America em 29/06/2016

Publicada em: Software
0 comentários
5 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
672
No SlideShare
0
A partir de incorporações
0
Número de incorporações
356
Ações
Compartilhamentos
0
Downloads
13
Comentários
0
Gostaram
5
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Automação de Teste para REST, Web e Mobile

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 15 INSPECIONANDO ELEMENTOS Método para obter a forma de localizá-lo para interação futura Botão de inspeção
  16. 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. 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. 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. 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. 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. 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. 22 INSPECIONANDO COMPONENTES Podemos inspecionar através do uiautomatorviewer Botão de inspeção Componente Inspecionado Atributos do componente
  23. 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. 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. 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. 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

×