Testes funcionais com Selenium WebDriver: Do básico ao GRID
3.9 (9 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
150 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Testes funcionais com Selenium WebDriver: Do básico ao GRID to your Wishlist.

Add to Wishlist

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.
3.9 (9 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
150 students enrolled
Last updated 9/2017
Portuguese
Current price: $10 Original price: $90 Discount: 89% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 12.5 hours on-demand video
  • 72 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I 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
View Curriculum
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 is the target audience?
  • 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
Students Who Viewed This Course Also Viewed
Curriculum For This Course
105 Lectures
12:31: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
10 Lectures 35:01

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

O que é Selenium?
03:00

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

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
17 Lectures 02:28:25

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

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
2 More Sections
About the Instructor
Francisco Wagner Costa Aquino
4.6 Average rating
106 Reviews
620 Students
2 Courses
Analista de Testes

Formação e Experiência

Wagner Costa possui graduação em Ciências da Computação, Mestrado na área de previsão de séries temporais com Redes Neurais, ambas pela Universidade Estadual do Ceará (UECE). Trabalha com JAVA há mais de 10 anos, especificamente com testes há quase 9 anos. Também trabalha com desenvolvimento em aplicações Web, sempre com testes lhe dando suporte.

Trabalhos atuais

Integrante da equipe de suporte à automação de testes na DATAPREV. Professor de Testes automatizados e Testes Funcionais em duas especializações em Fortaleza (Universidade 7 de Setembro - Uni7), uma focada em desenvolvimento ágil e a outra em Testes de Software. Dá aulas presenciais há mais de 7 anos e está iniciando na área de aulas à distância.