Selenium Webdriver Junit

Selenium WebDriver

Histórico

Selenium surgiu em 2004, com Jason Huggins. Ele percebeu que poderia fazer melhor uso de seu tempo do que passar pelos mesmos testes de forma manual para cada alteração realizada. Ele desenvolveu uma biblioteca em JavaScript que poderia conduzir interações com a página, permitindo-lhe automaticamente executar novamente os testes através de vários navegadores. Essa biblioteca se tornou a Selenium Core, que subjaz a todas as funcionalidades do Selenium Remote Control (RC) e IDE Selenium. Selenium RC foi inovador porque nenhum outro produto lhe permitiu controlar um navegador a partir de uma linguagem de sua escolha.

Enquanto o selênio era uma ferramenta tremenda, mas não foi criada sem seus inconvenientes. Devido ao seu mecanismo de automação baseada em Javascript e as limitações de segurança dos navegadores que se aplicam a Javascript, diferentes coisas tornaram-se impossível de fazer. Para piorar as coisas, webapps tornou-se mais e mais poderosos ao longo do tempo, usando todos os tipos de características especiais que os novos navegadores forneciam e tornavam estas restrições mais dolorosa.

Em 2006, um engenheiro do Google chamado Simon Stewart começou a trabalhar em um projeto que ele chamou WebDriver. O Google utilizava seriamente o selenium, mas testadores tiveram de contornar as limitações do produto. Simon queria uma ferramenta de teste que falasse diretamente para o navegador usando o método "nativo" para o navegador e para o sistema operacional, evitando assim as restrições do ambiente de desenvolvimento do Javascript. O projeto WebDriver começou com o objetivo de resolver os pontos críticos do selenium.
Pulamos para 2008. A história mais importante do ano foi a fusão de Selenium com o WebDriver. Selenium teve forte apoio da comunidade e um suporte comercial, mas WebDriver era claramente a ferramenta do futuro. A união das duas ferramentas forneceu um conjunto comum de recursos para todos os usuários e trouxe algumas das mentes mais brilhantes em automação de teste sob o mesmo teto. Talvez a melhor explicação para WebDriver e selenium estarem o se fundindo foi detalhado por Simon Stewart, o criador do WebDriver, em um e-mail conjunto com a comunidade WebDriver e Selenium em 6 de agosto de 2009.
"Por que os projetos de fusão? Em parte porque Webdriver aborda algumas deficiências em Selenium (por ser capaz de ignorar a área de desenvolvimento do JS, por exemplo. E nós temos uma API lindo), em parte porque o selenium aborda algumas deficiências no Webdriver (como apoiar uma ampla gama de navegadores) e em parte porque os principais contribuidores e eu sentimos que era a melhor maneira de oferecer aos usuários o melhor framework possível ".

O Selenium é uma das ferramentas mais conhecidas e utilizadas para realizar a automação de testes em aplicações web por meio do browser. É possível utilizá-la tanto por meio de sua interface de gravação de testes, que é o Selenium IDE, quanto utilizando sua API para escrever os testes em diferentes linguagens como: Java, C# e PHP.
“Selenium IDE é um ambiente integrado de desenvolvimento para scripts de testes automatizados. Ele é implementado como uma extensão do Firefox e permite gravar, editar e depurar os testes. O Selenium IDE inclui o Selenium Core, permitindo que você facilmente e rapidamente possa gravar e reproduzir os testes no ambiente real que será executado.”
Navegadores e Plataformas Compatíveis
Selenium-WebDriver suporta os seguintes browsers e sistemas operacionais:
• Google Chrome
• Internet Explorer
• Firefox
• Opera
• Android
• iOS

Produtos, e modos de uso do Selenium.
Selenium Core (Modo direto)
Os testes são efetuados diretamente através do browser. As páginas de teste devem estar hospedadas no mesmo servidor que o programa/site a ser testado. Esta restrição/característica é função da segurança relativa à mesma origem requerida pelo javascript.
Vantagens:

  • Suporte para todos os browsers

Desvantagens:

  • É necessária a instalação remota no servidor.
  • Possui algumas limitações para testes mais complexos.
  • Pode ter um comportamento irregular quando se testam páginas com ajax, onde é necessário um controle maior do tempo, e/ou seqüencia de eventos. Este comportamento é altamente dependente do “engine” java script do browser. Dependendo do caso, às vezes pode apresentar falsos erros em função da priorização das atividades, já que tando “quem testa” quanto “quem é testado” estão sendo executados sob o mesmo “engine” java script, e comportamentos concorrentes podem não ser tão previsíveis assim …

Selenium IDE - (Modo indireto - Plugin no browser)
Os testes são efetuados através de um plugin instalado no FireFox. Este plugin é um ambiente integrado de desenvolvimento. Permite gravar a navegação do usuário, e depois repeti-la a titulo de teste. Também permite exportar os testes gravados em outros formatos. É um fácil de usar o Firefox plug-in e geralmente é a maneira mais eficiente para desenvolver casos de teste. Ele também contém um menu de contexto que permite que você selecione primeiro um elemento de interface do usuário da página do navegador atualmente exibida e então selecionar a partir de uma lista de comandos de selênio com parâmetros pré-definidos de acordo com o contexto do elemento da interface do usuário selecionado. Esta não é apenas uma economia de tempo, mas também uma excelente forma de aprender Selênio sintaxe de script.
Vantagens:

  • A instalação é local e simples.
  • É muito fácil de usar.
  • Permite gravar sessões de teste para uso posterior.
  • Permite exportar as sessões de teste como arquivos fonte Java, C#, Perl, PHP, Python e Ruby, que podem ser usados pelo Selenium RC.
  • Excelente para quem inicia o uso do Selenium.
  • Não é preciso saber programar.

Desvantagens:

  • Funciona como plugin apenas no FireFox.
  • Possui algumas limitações para testes mais complexos.
  • Pode apresentar o mesmo comportamento irregular relatado no item Selenuim Core. (colocar link local para #L1)

Selenium RC (Modo indireto - Programa de teste + Proxy)
Os testes são efetuados através de um programa, que comanda o browser através de um proxy. Este programa pode ser escrito em Java, C#, Perl, PHP, Python e Ruby.
Vantagens:

  • Permite o uso de verdadeiras linguagens de programação.
  • Permite um controle muito mais apurado do tempo, sequencia de eventos, etc.…
  • É possível importar os testes gerados pelo Selenium IDE.
  • Muito mais flexível e poderoso. Pode evoluir até para grandes suítes de testes, integração contínua, geração de relatórios. Como o programa está em suas mãos você pode fazer o que quiser!

Desvantagens:

  • A instalação e configuração do ambiente são um pouco mais trabalhosas.
  • É necessário saber programar.
  • Pode ser mais complicado escrever os testes à partir do “zero”.

Um Pouco de Selenium WebDrive ( Teste )
Existe a versão do Selenium WebDrive em que se pode escrever os scripts na linguagem suportada. Esta versão é indicada para testes mais elaborados e por usuários familiarizados com a ferramenta. Geralmente usa-se o Selenium IDE para testes básicos, exporta-se o script e depois se edita o script para realizar testes mais elaborados.

Exemplo de um codígo HTML usando Selenium:

source

Referência:
http://www.ufpi.br/subsiteFiles/ercemapi/arquivos/files/minicurso/mc2.pdf

http://docs.seleniumhq.org/docs/01_introducing_selenium.jsp

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License