O que é Selenium WebDriver? Diferença com RC

O que é Selenium Webdriver?

Selenium Webdriver é uma coleção de APIs de código aberto usada para testar aplicativos da web. A ferramenta Selenium Webdriver é usada para automatizar o teste de aplicativos da web para verificar se ele funciona conforme o esperado ou não. Ele oferece suporte principalmente a navegadores como Firefox, Chrome, Safari e Internet Explorer. Ele também permite que você execute testes entre navegadores.

O WebDriver também permite que você use uma linguagem de programação na criação de seus scripts de teste (não é possível no Selenium IDE).

Agora você pode usar operações condicionais como if-then-else ou switch-case. Você também pode executar looping como do-while.

As seguintes linguagens de programação são suportadas pelo WebDriver

  • Java
  • .Internet
  • PHP
  • Pitão
  • Perl
  • Rubi

Você não precisa saber todos eles. Você só precisa ter conhecimento em um. No entanto, neste tutorial, usaremos Java com Eclipse como nosso IDE.

Diferença entre Selenium RC e Webdriver

Antes do advento do WebDriver em 2006, havia outra ferramenta de automação chamada Selenium Remote Control. Tanto o WebDriver quanto o Selenium RC possuem os seguintes recursos:

  • Ambos permitem que você use uma linguagem de programação ao projetar seus scripts de teste.
  • Ambos permitem que você execute seus testes em navegadores diferentes.

Então, como eles diferem? Vamos discutir as respostas.

1. Arquitetura

A arquitetura do WebDriver é mais simples do que a do Selenium RC .

  • Ele controla o navegador no nível do sistema operacional
  • Tudo que você precisa é o IDE de sua linguagem de programação (que contém seus comandos Selenium) e um navegador.
A arquitetura do Selenium RC é muito mais complicada.
  • Você primeiro precisa iniciar um aplicativo separado chamado Selenium Remote Control (RC) Server antes de iniciar o teste
  • O Selenium RC Server atua como um "intermediário" entre os comandos do Selenium e o navegador
  • Quando você começa o teste, o Selenium RC Server "injeta" um programa Javascript chamado Selenium Core no navegador.
  • Uma vez injetado, o Selenium Core começará a receber instruções retransmitidas pelo RC Server de seu programa de teste.
  • Quando as instruções forem recebidas, o Selenium Core as executará como comandos Javascript.
  • O navegador obedecerá às instruções do Selenium Core e retransmitirá sua resposta ao servidor RC.
  • O RC Server receberá a resposta do navegador e, em seguida, exibirá os resultados para você.
  • O servidor RC buscará a próxima instrução de seu script de teste para repetir todo o ciclo.

2. Velocidade

O WebDriver é mais rápido que o Selenium RC, pois fala diretamente com o navegador e usa o mecanismo do próprio navegador para controlá-lo.

O Selenium RC é mais lento porque usa um programa Javascript chamado Selenium Core. Este Selenium Core é o que controla diretamente o navegador, não você.

3. Interação na vida real

O WebDriver interage com os elementos da página de uma forma mais realista. Por exemplo, se você desativou uma caixa de texto em uma página que estava testando, o WebDriver realmente não pode inserir nenhum valor nela, assim como uma pessoa real não pode.

Selenium Core, assim como outros códigos JavaScript, pode acessar elementos desabilitados. No passado, os testadores do Selenium reclamavam que o Selenium Core era capaz de inserir valores em uma caixa de texto desativada em seus testes. Diferenças na API

4. API

A API do Selenium RC é mais desenvolvida, mas contém redundâncias e comandos muitas vezes confusos . Por exemplo, na maioria das vezes, os testadores ficam confusos se devem usar type ou typeKeys; ou se deve usar click, mouseDown ou mouseDownAt. Pior, navegadores diferentes interpretam cada um desses comandos de maneiras diferentes também!

A API do WebDriver é mais simples do que a do Selenium RC . Não contém comandos redundantes e confusos.

5. Suporte do navegador

WebDriver pode suportar o navegador headless HtmlUnit

HtmlUnit é denominado como "headless" porque é um navegador invisível - sem interface gráfica do usuário.

É um navegador muito rápido porque nenhum tempo é gasto esperando o carregamento dos elementos da página. Isso acelera seus ciclos de execução de teste.

Por ser invisível para o usuário, só pode ser controlado por meios automatizados.

O Selenium RC não oferece suporte ao navegador headless HtmlUnit. Ele precisa de um navegador real e visível para operar.

Limitações do WebDriver

WebDriver não suporta prontamente novos navegadores

Lembre-se de que o WebDriver opera no nível do sistema operacional. Além disso, lembre-se de que navegadores diferentes se comunicam com o sistema operacional de maneiras diferentes. Se um novo navegador for lançado, ele pode ter um processo diferente de comunicação com o sistema operacional em comparação com outros navegadores. Portanto, você precisa dar à equipe do WebDriver algum tempo para descobrir esse novo processo antes de implementá-lo no próximo lançamento do WebDriver.

No entanto, cabe à equipe de desenvolvedores do WebDriver decidir se eles devem oferecer suporte ao novo navegador ou não.

Selenium RC tem gerador de resultado de teste integrado

O Selenium RC gera automaticamente um arquivo HTML dos resultados do teste . O formato do relatório foi pré-definido pelo próprio RC. Dê uma olhada em um exemplo deste relatório abaixo.

O WebDriver não possui um comando integrado que gere automaticamente um arquivo de resultados de teste . Você teria que confiar na janela de saída de seu IDE ou projetar o relatório usando os recursos de sua linguagem de programação e armazená-lo como texto, HTML, etc.

Resumo

  • WebDriver é uma ferramenta para testar aplicativos da web em diferentes navegadores usando diferentes linguagens de programação.
  • Agora você pode fazer testes poderosos porque o WebDriver permite que você use uma linguagem de programação de sua escolha ao projetar seus testes.
  • O WebDriver é mais rápido que o Selenium RC por causa de sua arquitetura mais simples.
  • O WebDriver se comunica diretamente com o navegador, enquanto o Selenium RC precisa da ajuda do servidor RC para fazê-lo.
  • A API do WebDriver é mais concisa do que a do Selenium RC.
  • O WebDriver pode suportar HtmlUnit enquanto o Selenium RC não.
  • As únicas desvantagens do WebDriver são:
    • Ele não pode suportar novos navegadores prontamente , mas o Selenium RC pode.
    • Ele não possui um comando embutido para geração automática de resultados de teste.

Artigos interessantes...