
Apanhado geral de tudo que veremos ao longo do curso
Nessa aula, veremos a diferença entre os níveis de testes para saber onde os testes funcionais se enquadram.
A pirâmide de testes nos ajuda a ter noção da proporcionalidade dos testes
Nessa aula, apresentarei algumas vantagens de se manter uma bateria de testes automatizados
Nessa aula, apresentarei o Selenium e quais os tipos que essa ferramenta possui
Nessa aula, vamos preparar o ambiente para utilizar o Selenium IDE
Nessa aula, apresentarei os elementos básicos da interface do Selenium IDE
Nessa aula, faremos a nossa primeira gravação
Entenda como o Selenium IDE trabalha e como resolver possíveis problemas
Primeiro desafio do curso
Aprenda a organizar os testes em forma de uma suíte
Aprenda como sincronizar seus testes com a aplicação
Selenium IDE resolve nossos problemas, conversaremos melhor nessa aula
Nessa aula, mostrarei um recurso para exportar os testes gravados para códigos em diversas linguagens de programação
Conheça outra ferramenta para automatizar os testes, o Selenium Webdriver
Nessa aula, vamos preparar o ambiente para executar os testes com Selenium Webdriver
Nessa aula, vamos fazer a primeira execução com o Selenium Webdriver
Nessa aula, vamos refatorar nosso teste para utilizar o JUnit
Aprenda a executar os testes no Chrome e Internet Explorer também
Nessa aula, vou mostrar como podemos definir a posição e tamanho dos browsers, durante os testes
Vamos automatizar o fechamento do browser?
Iniciando a sessão de elementos básicos, vou apresentar a página que vamos utilizar como uma espécie de campo de treinamento
Aprenda a interagir com campos de escrita de texto
Aprenda a interagir com radiobutton e checkbox
Aprenda a interagir com combos
Combos de múltipla escolha possuem algumas diferenças...
Aprenda a interagir com botões
Aprenda a interagir com links
Aprenda a interagir com outras tags e extrair texto delas
Nessa seção, apresentarei como interagir com alertas. Iniciando pelo tipo mais simples
Aprenda a interagir com o alerta do tipo Confirm
Aprenda a interagir com o alerta do tipo Prompt
Nesse desafio, vamos fazer um cadastro com sucesso
Aprenda a manipular elementos dentro de iFrames
Aprenda a manipular elementos dentro de janelas
Nessa aula, apresentarei uma forma mais dinâmica para interagir com janelas
Mais um desafio, agora vamos testar algumas regras de negócio
Iniciando a sessão de organização de código, vamos conversar sobre a qualidade que nossos códigos devem ter
Inciando a refatoração com uma funcionalidade do JUnit.
Nessa aula, vamos fazer a nossa própria DSL
Nessa aula, veremos o resultado da criação da nossa DSL
Nessa aula, vou apresentar o padrão mais conhecido quando fazemos testes funcionais automatizados
Nessa aula, vamos refatorar nossos códigos para utilizar o padrão
Nessa aula, aprenderemos a criar testes parametrizáveis usando um recurso do JUnit
Nessa aula, apresentarei como organizar nossos testes em suíte
Nessa aula, apresentarei como podemos aumentar o poder do selenium, usando javascript
Nessa aula, vamos resolver um problema, utilizando javascript
Nessa aula, mostrarei porque os ids seriam a melhor estratégia que você poderia utilizar
Nessa aula, apresentarei alguns plugins do firefox que nos ajudarão bastante
Chegou a hora de entender como funcionam os xpath
Uma vez que já entendemos o funcionamento dos xpath, vamos aprender como criá-los
Sua vez de testar os conhecimentos, criando alguns xpath
Nessa aula, vou mostrar como podemos mesclar a api com xpaths para deixar as interações mais dinâmicas
Nessa aula, vamos continuar com a implementação da aula anterior
Nessa aula, vamos voltar para resolver uma pendência em um exercício antigo
Nessa aula, vou apresentar um framework que dificulta os testes e como podemos trabalhar com ele
Mais um desafio... esse é dos difícieis
Nessa aula, apresentarei um dos maiores problemas que encontraremos durante os testes: sincronismo
Nessa aula, apresentarei a primeira estratégia para resolver problemas de sincronismo
Nessa aula, apresentarei uma segunda estratégia para resolver problemas de sincronismo
Nessa aula, apresentarei a terceira estratégia para resolver problemas de sincronismo
Nessa aula, discutiremos sobre qual a melhor estratégia para resolver problemas de sincronismo
Um tipo de aplicação que necessita de muito cuidado em relação ao sincronismo são as aplicações AJAX
Nessa aula, apresentarei as funcionalidades que teremos no nosso framework
Nessa aula, implementaremos a primeira funcionalidade ao nosso framework
Nessa aula, adicionaremos comportamentos aos nossos testes através de heranças
Nessa aula, adicionaremos a funcionalidade de reusar o mesmo browser durante os testes
Nessa aula, faremos com que cada teste salva uma screenshot ao final da sua execução
Nessa aula, iremos deixar a mudança de browsers parametrizável
Chegou a hora de olhar para trás e ver tudo que já alcançamos
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
Nessa aula, apresentarei os testes a serem realizados ao longo desse módulo
Antes de fazer qualquer teste, precisamos logar na aplicação
Primeiro teste da série: Inserir uma conta
Segundo teste: Alterar uma conta
Terceiro teste: inserir uma conta com o mesmo nome
Quarto teste: inserir uma movimentação
Quinto teste: Campos obrigatórios durante a movimentação
Sexto teste: Inserir uma movimentação com data futura
Sétimo teste: Remover movimentação
Oitavo teste: remover uma conta com movimentação
Nono teste: Verificar o saldo das contas
Décimo teste: Resumo mensal
Primeira aula sobre gerenciamento de massa de dados, aqui apresentarei uma solução para o nosso problema... porém ainda não é a definitiva
Nessa aula, vamos definir uma sequencia para a execução dos nossos testes
Nessa aula, vamos adaptar a nossa bateria para que ela seja executada com mais velocidade
Está na hora de mais um desafio: Verificar que o resumo mensal está vazio
Nessa aula, veremos a motivação para o uso do paralelismo
Nessa aula, veremos como executar os testes, via Maven. Através de linha de comando.
Nessa aula, veremos uma estratégia para executar os testes em paralelo.
Nessa aula, vamos alterar a estratégia de gerenciamento do driver para que se use apenas um driver por thread
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
Nessa aula, apresentarei um eater egg na aplicação que vai facilitar o nosso gerenciamento de massa
Nessa aula, vamos adaptar os nossos testes para utilizar essa nova estratégia de gerenciamento de massa de dados
Só falta mais um passo para deixarmos a nossa suíte totalmente automatizada, resolveremos nessa aula
Chegou a hora de conhecer o Selenium GRID
Nessa aula, vamos refatorar nossos testes para utilizar o selenium grid
Nessa aula, vamos preparar uma máquina windows para se conectar ao nosso GRID
Nessa aula, vamos preparar uma máquina linux para se conectar ao nosso GRID
Nessa aula, vamos preparar uma máquina mac para se conectar ao nosso GRID
Chegou a hora de fazer uma execução do grid utilizando todas as máquinas que foram conectados a ele em aulas anteriores
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:
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.