1 of 23

[1]

Automação de Testes com Selenium WebDriver e Java

Camila Cavalcante

Tech Education Coordinator�DIO

linkedin.com/in/cami-lagithub.com/cami-lainstagram.com/camimi_la

2 of 23

[2]

Conheça o Selenium WebDriver, a principal ferramenta de automação de páginas Web. Nesse contexto, explore a linguagem de programação Java e entenda como o Selenium automatiza as ações diretamente em seu browser.

Objetivo Geral

3 of 23

[3]

  • JDK 8+
  • IDE para desenvolvimento Java (Usarei Eclipse IDE)
  • Sintaxe básica Java
  • Princípios da Web (HTML/CSS e JS)
  • Noção acerca de testes unitários

Pré-Requisitos

4 of 23

[4]

Percurso

Parte 1

Visão geral: Testes de unidade e E2E

Parte 2

Overview: Testes unitários com JUnit 5

Parte 3

Overview: Testes E2E com Selenium WebDriver

Parte 4

Para Saber Mais

5 of 23

[5]

// Automação de Testes com Selenium WebDriver e Java

Parte 1

Visão geral: Testes de unidade e Aceitação

6 of 23

[6]

  • O software deve fazer o que o cliente precisa de maneira confiável, segura, eficiente e flexível.
  • Para um software ser testado corretamente, esse processo deve ser automatizado com o auxílio de ferramentas com esta finalidade.
  • Os testes automatizados vêm como uma forma de poupar tempo de detecção de erros e de aumento de confiabilidade com relação aos testes em si.

Por que testamos?

7 of 23

[7]

Pirâmide de testes

8 of 23

[8]

  • São testes que verificam se uma parte específica do código, costumeiramente a nível de função, está funcionando corretamente. 
  • Estes tipos de testes são frequentemente escritos por desenvolvedores quando trabalham no código, para assegurar que a função específica está executando como esperado. 
  • Testes Unitários não dependem de nenhum processo ou sistema externo (banco de dados, console, rede e etc.)

Testes Unitários

9 of 23

[9]

Testes de Aceitação

  • "Teste de aceitação", categoria que também recebe nomes como "Teste de UI" ou "E2E".
  • O teste de aceitação é a ação de teste final antes da implementação do software.
  • A meta deste teste é verificar se o software está pronto e pode ser utilizado pelos usuários, para desempenhar as funções e tarefas para as quais o software foi construído.

10 of 23

[10]

// Automação de Testes com Selenium WebDriver e Java

Parte 2

Testes unitários com JUnit 5

11 of 23

[11]

  • Para efetuar os testes automatizados precisamos de um framework auxiliar de testes unitários e assim efetuar as operações de lógica de negócio na camada do servidor.
  • Existem dois principais frameworks que podemos usar que se comunicam muito bem com o Selenium WebDriver: o JUnit e o TestNG.
  • O JUnit é um framework open-source que possibilita a criação das classes de testes e tem como objetivo facilitar a criação de casos de teste, além de permitir escrever testes que retenham seu valor ao longo do tempo.

12 of 23

[12]

JUnit Platform + JUnit Jupiter + JUnit Vintage​

  • JUnit Platform: Serve como base para lançar estruturas de teste na JVM. Ele também define a API TestEngine para desenvolver uma estrutura de teste que é executada na plataforma.​
  • Junit Jupiter: O subprojeto Jupiter fornece um TestEngine para executar testes baseados em Jupiter na plataforma.​
  • Junit Vintage: Fornece um TestEngine para executar testes baseados em JUnit 3 e JUnit 4 na plataforma.​

13 of 23

[13]

14 of 23

[14]

15 of 23

[15]

// Automação de Testes com Selenium WebDriver e Java

Parte 3

Testes E2E com

Selenium WebDriver

16 of 23

[16]

  • Selenium é um conjunto de ferramentas de código aberto multiplataforma, usado para testar aplicações web pelo browser de forma automatizada.
  • Ele executa testes de funcionalidades da aplicação web e testes de compatibilidade entre browser e plataformas diferentes.
  • O Selenium suporta diversas linguagens de programação, como por exemplo C#, Java e Python, e vários navegadores web como o Chrome e o Firefox.

17 of 23

[17]

  • O ecossistema do Selenium é bem completa, tendo: Selenium IDE, Selenium WebDriver e Selenium Grid.
  • O Selenium WebDriver usa o próprio driver do navegador para a automação.
  • É a forma mais moderna de interação atualmente, pois cada browser possui o seu respectivo driver, permitindo a interação entre o script de teste e o respectivo browser.

18 of 23

[18]

19 of 23

[19]

  • A Selenium Client Library consiste em linguagens como Java, Ruby, Python, C# e etc. Após os casos de teste acionados, o código do Selenium será convertido para o formato Json.
  • O Json gerado é disponibilizado para os drivers do navegador por meio do protocolo http.
  • Cada navegador tem um driver de navegador específico. Assim que o driver do navegador recebe instruções, ele as executa no navegador. Em seguida, a resposta é dada de volta na forma de resposta HTTP.

20 of 23

[20]

21 of 23

[21]

Para Saber Mais

22 of 23

[22]

“Falar é fácil.

 Mostre-me o código!”

Linus Torvalds

Hands On!

23 of 23

[23]

> Comunidade Online (Rooms)

> Fórum do Bootcamp e/ou Artigos

> Central de Ajuda DIO

Dúvidas?