segunda-feira, 25 de fevereiro de 2013

Como aprender sobre Selenium (de forma gratuita ou paga)

Olá pessoal!
Recebo quase todos os dias e-mails de profissionais da área perguntando como eles podem aprender sobre Selenium e onde podem encontrar materiais.

Este post se destina a isso: como aprender Selenium de uma forma "gratuita" ou não!
Quando eu falo Selenium, na verdade estou falando de WebDriver (apesar de existirem pessoas que querem aprender sobre o Selenium IDE e vou citar isso, o foco maior é em WebDriver)

Aprendendo Selenium de forma gratuita
Atualmente, até onde eu sei, não existe nenhum treinamento gratuito sobre Selenium.
O aprendizado gratuito pode se dar através de:
  • Leitura da documentação
  • Leitura e entendimento da API
  • Prática
  • Apresentações
  • Desafios Selenium

Leitura da documentação
Existem duas documentações padrão do Selenium:
  • Através do site http://seleniumhq.org: neste site você pode acessar a 'aba' Documentation e ler realmente a documentação. Há muita coisa boa lá e realmente te dá uma boa base inicial


O ideal é você ler todos os documentos contidos no Wiki, mas estes itens acima já irão lhe dar um overview sobre o WebDriver


Leitura e entendimento da API
Com o WebDriver é inevitável: temos que programar/desenvolver nossos testes utilizando alguma linguagem de programação!
Logo é um pré-requisito que você conheça, pelo menos, o básico da liguagem de programação de sua escolha e que também saiba como ler a API (documentação das ferramentas/plugins/frameoworks) implementados em uma determinada linguagem.

Podemos visualizar abaixo a lista das linguagens de programação formalmente suportadas com WebDriver e o link de cada API (documentação):

Prática!
Para aprendermos qualquer ferramenta não tem jeito: temos que praticar!
Logo a prática é um elemento fundamental do nosso aprendizado.
Você pode praticar em diversos sites web, mas aqui vai minha recomendação:
  • Começe a praticar em sites/aplicações simples
  • NUNCA tente praticar automatizando o login do Gmail, Yahoo! e outros...
  • Utilizar CMS ou lojas virtuais open source para praticar é uam boa. Você pode praticar num Joomla, Prestashop, por exemplo

Apresentações
Sempre é bom dar uma "Googleada" para encontrar apresentações ou links.
Eu recomendo dar uma olhada no SlideShare, site que contém uma gama de apresentações publicadas e diversas sobre Selenium.

Desafios Selenium
Foi uma iniciativa que eu criei em 2011 lançando um problema real, onde o mesmo deve ser automatizado com Selenium IDE.
Os desafios possuem a resolução explicada em vídeo, o que facilita o entendimento.
Por enquanto eu tenho somente 5 desafios e todos com respostas para o Selenium IDE, porém logo em breve voltarei a postar mais desafios em ambos os formatos: Selenium IDE e WebDriver!


Aprendendo Selenium de forma paga
Obviamente sempre temos alternativas pagas! Geralmente esta alternativa foca mais no que cada um precisa aprender e dependendo da forma que você escolher, um curso por exemplo, você conseguirá (ou não, pois depende de você) tirar um maior proveito e resolver problemas e dúvidas que você possa ter. O aprendizado pago pode ser:
  • Através de Cursos
  • Através de Livros

Atavés de Cursos
Existem dois treinamentos sobre WebDriver (um que cobre Selenium IDE que eu conheço), que serão listados abaixo:

Treinamento de Selenium (IDE, RC, WebDriver) do Elias Nogueira (eu)
Há algum tempo eu dou treinamento sobre Selenium.
Os treinamentos são no formato EAD síncrono, traduzindo, são treinamentos via videoconferência ao vivo. O aluno acessa um link onde vê a tela do instrutor e segue suas instruções.

Atualmente o curso é dividido em 4 módulos:
  • Selenium IDE Básico
  • Selenium IDE Avançado
  • WebDriver Básico
  • WebDriver Integrações
Todos os exercícios cobrem as principais dúvidas e interações que faremos na "vida real". Os exercicios resolvidos no Selenium IDE e WebDriver são disponibilizados, bem como uma apostila e certificado de participação.

Para saber mais sobre o treinamento acesse: http://sembugs.blogspot.com.br/p/curso-de-selenium.html


Treinamento de WebDriver (em inglês) do Alan Richardson (EvilTester)
Um cara chamado Alan Richardson, mais conhecido como EvilTester (seu blog) criou um treinamento sobre WebDriver no site Udemy.
O treinamento são video-aulas em inglês que mostram como trabalhar com o WebDriver em diversos pontos:
  • Navegação
  • Suporte dos testes com JUnit
  • Locators
  • Interações
  • RemoteWebdriver
  • CI

Link do treinamento: https://www.udemy.com/selenium-2-webdriver-basics-with-java/


Através de Livros

Existem livros muito bacanas sobre Selenium, mas infelizmente para alguns estes livros são em inglês (pra quem não consegue ler livros em inglês ainda fica o incentivo para aprender!)



Livro: Selenium Simplified

Este livro é do mesmo autor do curso do Udemy que eu coloquei acima: Alan Richardson. Este livro sobre a utilização do Selenium RC/WebDriver utilizando Java e JUnit.
É muito parecido com o próprio treinamento que o autor tem, mas os itens cobertos no livro possuem mais detalhes.

Link da página do livro: http://www.compendiumdev.co.uk/selenium/





Livro: Selenium Testing Tools Cookbook

Este livro mostra, além do básico de programação com WebDriver, problemas reais e como resolvê-los.
Também apresenta como fazer integrações de ferramentas de BDD e ATDD, como executar testes no Selenium Grid, como capturar evidências e como executar testes em browsers de dispositivos móveis (Android e iOS)

Link da página do livro: http://www.packtpub.com/recipes-to-master-selenium-2-testing-tools-cookbook/book



Livro: Selenium 2 Testing Tools

Este livro é de autoria de um dos commiters do Selenium: David Burns. Neste livro o autor aborda todos os conceitos  básicos do WebDriver unidos a alguns Design Patters para ajudar o leitor a desenvolver melhor usando o WebDriver.

Link da página do livro: http://www.packtpub.com/selenium-2-testing-tools-beginners-guide/book






Espero que este post seja de grande ajuda aqueles que desejam iniciar o aprendizado do Selenium.
Qualquer dúvida ou sugestões de links, cursos e livros deixem um comentário neste post :-)

Abraços!


7 comentários:

  1. Olá Elias,

    Estou a um tempo procurando sobre 2 assuntos a respeito do Selenium e não consigo uma solução. Você saberia me passar alguma dica de onde posso encontrar?

    1- Como fazer autenticação NTLM com o Selenium no IE, Firefox e Chrome.
    2- Como executar testes a partir de um browser já aberto?

    ResponderExcluir
  2. Olá Elias,

    Estou a um tempo procurando sobre 2 assuntos a respeito do Selenium e não consigo uma solução.

    1- Como fazer autenticação NTLM com o Selenium no IE, Firefox e Chrome.

    2- Como executar testes a partir de um browser já aberto?

    Você saberia me passar alguma dica de onde posso encontrar?

    ResponderExcluir
  3. Para fazer autenticação NTLM tu precisas, no Firefox, criar um profile já com a configuração de acesso neste profile. Depois basta chamar o profile no momento da execução.
    Olá anonimo!

    Com outros browsers tu deves utilizar a classe DefaultCredentialsProvider para efetuar a autenticação.
    O link abaixo mostra um exemplo utilizando o HtmlUnitDriver
    https://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions#Q:_How_do_I_handle_authentication_with_the_?

    A execução a partir de um browser já aberto depende na verdade da forma com que tu estás construindo o teste.
    Se tu deseja executar um teste "completo", ou como alguns chamam no mercado de End2End (E2E) ou "Fim-a-Fim" o ideal é tu dar uma olhada sobre PageObjects e criar criar os testes como se fosse em uma unica classe de teste.

    Se tu tens problemas com isso referente a questão de autenticação (do WebDriver abrir diversas vezes o browser e todo vez pedir autenticação), tu consegues resolver com a resposta da primeira pergunta. Se for questão de sessão tu também consegues resolver.

    ResponderExcluir