Testes funcionais com Selenium WebDriver: Do básico ao GRID
4.6 (1,232 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
3,897 students enrolled

Testes funcionais com Selenium WebDriver: Do básico ao GRID

Desde o básico até criar um framework para rodar testes em paralelo via Selenium Grid e na nuvem com a Saucelabs.
Highest Rated
4.6 (1,232 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
3,897 students enrolled
Last updated 3/2019
Portuguese
Portuguese [Auto-generated]
Current price: $9.99 Original price: $89.99 Discount: 89% off
30-Day Money-Back Guarantee
This course includes
  • 13 hours on-demand video
  • 3 articles
  • 72 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to Udemy's top 3,000+ courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Criar um projeto de testes automatizados em JAVA para aplicações Web do ZERO.
  • Utilizar o Selenium IDE, conhecendo suas limitações

  • Criar testes automatizados utilizando o Selenium WebDriver

  • Interagir com os elementos básicos dos formulários HTML
  • Interagir com elementos mais complexos, como: Alerts, Frames e PopUps
  • Organizar os códigos tornando-os mais legíveis, reusáveis e fáceis de manter
  • Entender a forma de localizar elementos na tela e criar xpaths mais robustos
  • Estratégias para sincronizar o teste com o fluxo da aplicação
  • Criar um Framework para estruturar seus testes e garantir várias funcionalidades extras sem muito esforço
  • Estratégias para fazer um gerenciamento das massas de dados utilizadas nos testes
  • Executar os testes em paralelo (e os cuidados que devemos tomar para a bateria continuar funcionando)
  • Executar os testes remotamente, em diversas máquinas (inclusive, de sistemas operacionais distintos), utilizando o Selenium GRID
  • Executar os testes na nuvem, utilizando os servidores da Saucelabs
Course content
Expand all 113 lectures 13:08:44
+ Introdução
4 lectures 19:40

Apanhado geral de tudo que veremos ao longo do curso

Preview 05:02

Nessa aula, veremos a diferença entre os níveis de testes para saber onde os testes funcionais se enquadram.

Níveis de Teste
06:49

A pirâmide de testes nos ajuda a ter noção da proporcionalidade dos testes

Pirâmide de testes
01:46

Nessa aula, apresentarei algumas vantagens de se manter uma bateria de testes automatizados

Importância da automação
06:03
+ Selenium IDE
12 lectures 35:42

Nessa aula, apresentarei o Selenium e quais os tipos que essa ferramenta possui

O que é Selenium?
03:00
Atenção
00:16

Nessa aula, vamos preparar o ambiente para utilizar o Selenium IDE

Montando o ambiente
01:41

Nessa aula, apresentarei os elementos básicos da interface do Selenium IDE

Elementos Básicos
01:40
Instância alternativa do Sr. Barriga
00:25

Nessa aula, faremos a nossa primeira gravação

Record and Play
02:42

Entenda como o Selenium IDE trabalha e como resolver possíveis problemas

Selenese e Locators
03:27

Primeiro desafio do curso

Desafio: Testes da Conta
05:43

Aprenda a organizar os testes em forma de uma suíte

Suíte de testes
04:57

Aprenda como sincronizar seus testes com a aplicação

Sincronismo
07:03

Selenium IDE resolve nossos problemas, conversaremos melhor nessa aula

Considerações
02:40

Nessa aula, mostrarei um recurso para exportar os testes gravados para códigos em diversas linguagens de programação

Exportando scripts
02:08
+ Selenium Webdriver
23 lectures 02:38:51

Conheça outra ferramenta para automatizar os testes, o Selenium Webdriver

Selenium Webdriver
02:07

Nessa aula, vamos preparar o ambiente para executar os testes com Selenium Webdriver

Montando o ambiente
06:13

Nessa aula, vamos fazer a primeira execução com o Selenium Webdriver

Preview 05:37

Nessa aula, vamos refatorar nosso teste para utilizar o JUnit

JUnit
08:00

Aprenda a executar os testes no Chrome e Internet Explorer também

Executando no Chrome e Internet Explorer
05:15

Nessa aula, vou mostrar como podemos definir a posição e tamanho dos browsers, durante os testes

Posição e tamanho do browser
04:08

Vamos automatizar o fechamento do browser?

Fechando o browser
02:16

Iniciando a sessão de elementos básicos, vou apresentar a página que vamos utilizar como uma espécie de campo de treinamento

Elementos básicos: Campo de treinamento
05:46

Aprenda a interagir com campos de escrita de texto

Elementos básicos: TextField e TextArea
12:21

Aprenda a interagir com radiobutton e checkbox

Elementos básicos: Radio e Check
04:19

Aprenda a interagir com combos

Elementos básicos: Combo
11:00

Combos de múltipla escolha possuem algumas diferenças...

Elementos básicos: Combo de múltipla escolha
05:25

Aprenda a interagir com botões

Elementos básicos: Botão
04:24

Aprenda a interagir com links

Elementos básicos: Link
05:34

Aprenda a interagir com outras tags e extrair texto delas

Elementos básicos: Div e Span
13:43

Nessa seção, apresentarei como interagir com alertas. Iniciando pelo tipo mais simples

Alert: Simples
06:49

Aprenda a interagir com o alerta do tipo Confirm

Alert: Confirm
05:11

Aprenda a interagir com o alerta do tipo Prompt

Alert: Prompt
03:40

Nesse desafio, vamos fazer um cadastro com sucesso

Desafio: Cadastro com sucesso
15:11

Aprenda a manipular elementos dentro de iFrames

Frames
07:04

Aprenda a manipular elementos dentro de janelas

Janela
06:27

Nessa aula, apresentarei uma forma mais dinâmica para interagir com janelas

WindowHandler
06:56

Mais um desafio, agora vamos testar algumas regras de negócio

Desafio: Testar regras de negócio
11:25
+ Organização de código
8 lectures 01:27:22

Iniciando a sessão de organização de código, vamos conversar sobre a qualidade que nossos códigos devem ter

Reúso de código
02:06

Inciando a refatoração com uma funcionalidade do JUnit.

Before e After
09:20

Nessa aula, vamos fazer a nossa própria DSL

DSL
18:28

Nessa aula, veremos o resultado da criação da nossa DSL

DSL: Resultado
12:49

Nessa aula, vou apresentar o padrão mais conhecido quando fazemos testes funcionais automatizados

Page Objects, parte 1
04:50

Nessa aula, vamos refatorar nossos códigos para utilizar o padrão

Page Objects, parte 2
17:39

Nessa aula, aprenderemos a criar testes parametrizáveis usando um recurso do JUnit

Testes Parametrizáveis
17:05

Nessa aula, apresentarei como organizar nossos testes em suíte

Suíte de testes
05:05
+ Javascript
2 lectures 21:11

Nessa aula, apresentarei como podemos aumentar o poder do selenium, usando javascript

Javascript
10:00

Nessa aula, vamos resolver um problema, utilizando javascript

Scroll
11:11
+ Locators Avançado
10 lectures 01:47:49

Nessa aula, mostrarei porque os ids seriam a melhor estratégia que você poderia utilizar

Importância dos IDs
02:56

Nessa aula, apresentarei alguns plugins do firefox que nos ajudarão bastante

Plugins do firefox
03:49

Chegou a hora de entender como funcionam os xpath

Entendendo Xpath
04:35

Uma vez que já entendemos o funcionamento dos xpath, vamos aprender como criá-los

Criando Xpath
15:25

Sua vez de testar os conhecimentos, criando alguns xpath

Desafio: Encontre elementos com Xpath
13:34

Nessa aula, vou mostrar como podemos mesclar a api com xpaths para deixar as interações mais dinâmicas

Interação dinâmica com tabelas
18:16

Nessa aula, vamos continuar com a implementação da aula anterior

Interação dinâmica com tabelas (continuação)
16:46

Nessa aula, vamos voltar para resolver uma pendência em um exercício antigo

Voltando ao cadastro com sucesso
04:12

Nessa aula, vou apresentar um framework que dificulta os testes e como podemos trabalhar com ele

PrimeFaces
14:58

Mais um desafio... esse é dos difícieis

Desafio: Combo prime
13:18
+ Aplicando Sincronismo
6 lectures 33:21

Nessa aula, apresentarei um dos maiores problemas que encontraremos durante os testes: sincronismo

Problema de sincronismo
06:25

Nessa aula, apresentarei a primeira estratégia para resolver problemas de sincronismo

Espera Fixa
03:36

Nessa aula, apresentarei uma segunda estratégia para resolver problemas de sincronismo

Espera Implícita
05:13

Nessa aula, apresentarei a terceira estratégia para resolver problemas de sincronismo

Espera Explícita
03:15

Nessa aula, discutiremos sobre qual a melhor estratégia para resolver problemas de sincronismo

Qual a melhor estratégia?
02:24

Um tipo de aplicação que necessita de muito cuidado em relação ao sincronismo são as aplicações AJAX

Ajax
12:28
+ Criando um Framework
7 lectures 50:04

Nessa aula, apresentarei as funcionalidades que teremos no nosso framework

Criando nosso próprio framework
01:26

Nessa aula, implementaremos a primeira funcionalidade ao nosso framework

Driver centralizado
14:00

Nessa aula, adicionaremos comportamentos aos nossos testes através de heranças

Herança do comportamento
07:00

Nessa aula, adicionaremos a funcionalidade de reusar o mesmo browser durante os testes

Reúso do browser
09:30

Nessa aula, faremos com que cada teste salva uma screenshot ao final da sua execução

Screenshot ao final dos testes
10:54

Nessa aula, iremos deixar a mudança de browsers parametrizável

Chaveamento de browser
03:12

Chegou a hora de olhar para trás e ver tudo que já alcançamos

Preview 04:02
+ Testando uma aplicação real
18 lectures 02:28:50

Nessa aula, vamos extrair um projeto básico a partir das funcionalidades que criamos até então. Esse projeto poderá ser usado para testar qualquer outra aplicação

Extraindo o projeto básico
06:15
Instância alternativa ao Sr. Barriga
00:25

Nessa aula, apresentarei os testes a serem realizados ao longo desse módulo

Testes a serem realizados
06:03

Antes de fazer qualquer teste, precisamos logar na aplicação

Login
09:38

Primeiro teste da série: Inserir uma conta

Teste: Inserir Conta
09:45

Segundo teste: Alterar uma conta

Teste: Alterar Conta
13:26

Terceiro teste: inserir uma conta com o mesmo nome

Teste: Inserir conta com mesmo nome
03:52

Quarto teste: inserir uma movimentação

Teste: Inserir movimentação
14:21

Quinto teste: Campos obrigatórios durante a movimentação

Teste: Campos obrigatórios na movimentação
11:07

Sexto teste: Inserir uma movimentação com data futura

Teste: Movimentação futura
12:31

Sétimo teste: Remover movimentação

Teste: Remover movimentação
08:47

Oitavo teste: remover uma conta com movimentação

Teste: Remover conta com movimentação
04:33

Nono teste: Verificar o saldo das contas

Teste: Saldo das contas
04:41

Décimo teste: Resumo mensal

Teste: Resumo mensal
02:23

Primeira aula sobre gerenciamento de massa de dados, aqui apresentarei uma solução para o nosso problema... porém ainda não é a definitiva

Gerenciamento de massa de dados, parte 1
04:01

Nessa aula, vamos definir uma sequencia para a execução dos nossos testes

Execução sequenciada
13:32

Nessa aula, vamos adaptar a nossa bateria para que ela seja executada com mais velocidade

Acelerando a execução
11:36

Está na hora de mais um desafio: Verificar que o resumo mensal está vazio

Desafio: Teste do Resumo Mensal Vazio
11:54
+ Executando testes em paralelo
14 lectures 01:11:47

Nessa aula, veremos a motivação para o uso do paralelismo

Paralelismo
02:54

Nessa aula, veremos como executar os testes, via Maven. Através de linha de comando.

Configurando o Maven
01:59

Nessa aula, veremos uma estratégia para executar os testes em paralelo.

Execução em paralelo
06:13

Nessa aula, vamos alterar a estratégia de gerenciamento do driver para que se use apenas um driver por thread

Um driver por thread
08:33

Segunda aula sobre gerenciamento de massa de dados. Nessa aula, apresentarei uma estratégia que vai funcionar bem com a execução dos testes em paralelo

Gerenciamento de massa de dados, parte 2
03:38

Nessa aula, apresentarei um eater egg na aplicação que vai facilitar o nosso gerenciamento de massa

Easter Egg
05:53

Nessa aula, vamos adaptar os nossos testes para utilizar essa nova estratégia de gerenciamento de massa de dados

Adaptando os testes para a nova estratégia
09:35

Só falta mais um passo para deixarmos a nossa suíte totalmente automatizada, resolveremos nessa aula

Resetando a massa de dados
06:59

Chegou a hora de conhecer o Selenium GRID

Selenium GRID
05:40

Nessa aula, vamos refatorar nossos testes para utilizar o selenium grid

Refatorando testes para usar o GRID
09:25

Nessa aula, vamos preparar uma máquina windows para se conectar ao nosso GRID

Preparando ambiente GRID: Windows
02:33

Nessa aula, vamos preparar uma máquina linux para se conectar ao nosso GRID

Preparando ambiente GRID: Linux
01:35

Nessa aula, vamos preparar uma máquina mac para se conectar ao nosso GRID

Preparando ambiente GRID: OSX
02:27

Chegou a hora de fazer uma execução do grid utilizando todas as máquinas que foram conectados a ele em aulas anteriores

Preview 04:23
Requirements
  • Você deve ter um conhecimento básico de JAVA
Description

Seja bem vindo ao curso de Testes Funcionais com Selenium WebDriver.

Nesse curso, irei te guiar passo a passo na criação de testes funcionais automatizados de aplicações Web. Não se preocupe, caso ainda seja um conceito novo para você, criaremos os testes desde o básico. Apesar das nossas implementações serem feitas em JAVA, podemos testar qualquer aplicação Web (HTML), independente da linguagem que ela fora criada.

O curso é 100% prático, onde trarei problemas, situações e os erros mais comuns que ocorrem no dia-a-dia, assim poderemos discutir sobre formas de como atuar em cada caso, tentando levantar os prós e contras de cada estratégia disponível.

O código de teste é tão importante quanto o código da aplicação, dessa forma, além das ferramentas e boas práticas, serão apresentadas técnicas e padrões que você pode utilizar para deixar o seu código mais enxuto e legível. Sem falar das manutenções dos testes que são tão constantes, pois bem, também tentaremos facilitar as manutenções necessárias, em alguns casos até poderemos reduzir também.

A nossa ferramenta principal será o Selenium WebDriver (já na versão 3), mas também veremos o Selenium IDE, para criarmos testes sem a necessidade de escrever códigos. Selenium GRID, para executar os testes remotamente; JUnit, para estruturar nossos testes; e o Eclipse, como IDE de desenvolvimento.

Foquei bastante em três pontos principais que são os maiores motivos de problemas nos testes funcionais: Localização de elementos, Sincronismo dos scripts e Massa de dados. Sobre eles, apresentarei alguns cenários e como podemos deixar nossos testes mais resilientes a tais instabilidades.

Durante o curso, criaremos um conjunto de métodos que facilitarão a criação dos testes. Também criaremos um framework que poderá ser utilizado para testar qualquer outra aplicação web. Esse framework possui diversas funcionalidades nativas como:

  • Screenshot ao final de cada teste; 
  • Chaveamento sobre qual browser utilizar
  • DSL herdada nos testes
  • Organização dos testes com PageObject
  • Execução em GRID
  • Execução na Nuvem

Nas fases iniciais do curso, usaremos uma página simples (Campo de Treinamento) para podermos forcar nos fundamentos do framework. Mais a frente, teremos um módulo exclusivo para testar uma aplicação real, trazendo alguns cenários importantes como autenticação e gerenciamento de massa de dados.

Material validado ao longo de 7 anos de aulas presenciais em empresas e turmas de especialização.

Ao final desse curso, você terá uma boa base para desenvolver seus testes e poder executá-los em diversos browsers (Firefox, Chrome, Internet Explorer) e sistemas operacionais (Windows, Linux, Mac), de forma sequencial ou paralela, você quem escolhe.

Who this course is for:
  • Testadores que estão cansados de executar os mesmos scripts, manualmente, várias e várias vezes
  • Testadores iniciantes interessados em aprender a automatizar testes funcionais
  • Testadores que prezam pela qualidade, legibilidade e reúso dos seus códigos de testes
  • Testadores que já possuem experiência na área podem ver algumas técnicas para deixar os testes mais resilientes a falhas