O que é selênio? Introdução ao Teste de Automação Selenium

O que é selênio?

Selenium é uma estrutura de teste automatizada gratuita (código aberto) usada para validar aplicativos da web em diferentes navegadores e plataformas. Você pode usar várias linguagens de programação como Java, C #, Python etc para criar Scripts de teste Selenium. O teste feito com a ferramenta de teste Selenium é geralmente referido como Teste Selenium.

O Selenium Software não é apenas uma ferramenta única, mas um conjunto de software, cada peça atendendo às diferentes necessidades de teste de QA do Selenium de uma organização. Aqui está a lista de ferramentas

  • Selenium Integrated Development Environment (IDE)
  • Selenium Remote Control (RC)
  • WebDriver
  • Grade de selênio
Introdução ao Selênio

No momento, o Selenium RC e o WebDriver estão combinados em uma única estrutura para formar o Selenium 2 . Selênio 1, a propósito, refere-se ao Selênio RC.

Clique aqui se o vídeo não estiver acessível

Neste tutorial, você aprenderá:

  • O que é selênio?
  • Quem desenvolveu o Selenium?
  • O mesmo problema de política de origem
  • Nascimento do Selênio Controle Remoto (Selênio RC)
  • Nascimento da grade de selênio
  • Nascimento do Selenium IDE
  • Nascimento do WebDriver
  • Nascimento de Selênio 2
  • Então, por que o nome Selênio?
  • Breve introdução Selenium IDE
  • Breve introdução Controle remoto Selenium (Selenium RC)
  • Breve introdução WebDriver
  • Grade de selênio
  • Nota sobre suporte a navegador e ambiente
  • Como escolher a ferramenta de selênio certa para sua necessidade
  • Uma comparação entre selênio e QTP (agora UFT)
  • Vantagens do QTP sobre o selênio

Quem desenvolveu o Selenium?

Como o Selenium é uma coleção de ferramentas diferentes, ele também teve desenvolvedores diferentes. Abaixo estão as principais pessoas que fizeram contribuições notáveis ​​para o Projeto Selenium

Primeiramente, o Selenium foi criado por Jason Huggins em 2004 . Engenheiro da ThoughtWorks, ele estava trabalhando em um aplicativo da web que exigia testes frequentes. Tendo percebido que o teste manual repetitivo de seu aplicativo estava se tornando cada vez mais ineficiente, ele criou um programa JavaScript que controlaria automaticamente as ações do navegador. Ele chamou esse programa de " JavaScriptTestRunner ".

Vendo o potencial dessa ideia para ajudar a automatizar outros aplicativos da web, ele tornou o código-fonte aberto JavaScriptRunner, que mais tarde foi renomeado como Selenium Core .

O mesmo problema de política de origem

A política da mesma origem proíbe o código JavaScript de acessar elementos de um domínio diferente de onde foi iniciado . Por exemplo, o código HTML em www.google.com usa um programa JavaScript "randomScript.js". A mesma política de origem só permitirá que randomScript.js acesse páginas em google.com, como google.com/mail, google.com/login ou google.com/signup. No entanto, ele não pode acessar páginas de sites diferentes, como yahoo.com/search ou guru99.com, porque eles pertencem a domínios diferentes.

Esta é a razão pela qual, antes do Selenium RC, os testadores precisavam instalar cópias locais do Selenium Core (um programa JavaScript) e do servidor da web que contém o aplicativo da web sendo testado para que pertençam ao mesmo domínio

Nascimento do Selênio Controle Remoto (Selênio RC)

Infelizmente; testadores usando Selenium Core tiveram que instalar todo o aplicativo em teste e o servidor da web em seus próprios computadores locais devido às restrições impostas pela política de mesma origem. Então, outro engenheiro da ThoughtWork, Paul Hammant , decidiu criar um servidor que agirá como um proxy HTTP para "enganar" o navegador fazendo-o acreditar que o Selenium Core e o aplicativo da web sendo testado vêm do mesmo domínio. Este sistema ficou conhecido como Controle Remoto Selenium ou Selenium 1 .

Nascimento da grade de selênio

O Selenium Grid foi desenvolvido por Patrick Lightbody para lidar com a necessidade de minimizar os tempos de execução de teste tanto quanto possível. Ele inicialmente chamou o sistema de " QA hospedado ". Ele era capaz de capturar imagens do navegador durante estágios significativos e também de enviar comandos Selenium para diferentes máquinas simultaneamente.

Nascimento do Selenium IDE

Shinya Kasatani, do Japão, criou o Selenium IDE , uma extensão do Firefox que pode automatizar o navegador por meio de um recurso de gravação e reprodução. Ele teve essa ideia para aumentar ainda mais a velocidade na criação de casos de teste. Ele doou o Selenium IDE para o Selenium Project em 2006 .

Nascimento do WebDriver

Simon Stewart criou o WebDriver por volta de 2006, quando navegadores e aplicativos da web estavam se tornando mais poderosos e mais restritivos com programas JavaScript como Selenium Core. Foi a primeira estrutura de teste de plataforma cruzada que pode controlar o navegador no nível do sistema operacional.

Nascimento de Selênio 2


Em 2008 , toda a equipe Selenium decidiu fundir WebDriver e Selenium RC para formar uma ferramenta mais poderosa chamada Selenium 2 , com WebDriver sendo o núcleo . Atualmente, o Selenium RC ainda está sendo desenvolvido, mas apenas em modo de manutenção. A maioria dos esforços do Projeto Selenium está agora focada no Selenium 2.

Então, por que o nome Selênio?

O nome Selenium veio de uma piada que Jason contou uma vez para sua equipe. Durante o desenvolvimento do Selenium, outra estrutura de teste automatizado foi popularizada pela empresa chamada Mercury Interactive (sim, a empresa que originalmente fez o QTP antes de ser adquirido pela HP). Como o selênio é um antídoto conhecido para o envenenamento por mercúrio, Jason sugeriu esse nome e seus companheiros o pegaram. Então é assim que chamamos esse framework até o presente.

Breve introdução Selenium IDE

O Selenium Integrated Development Environment (IDE) é a estrutura mais simples do pacote Selenium e a mais fácil de aprender . É um plugin do Firefox que você pode instalar tão facilmente quanto com outros plugins. No entanto, por causa de sua simplicidade, o Selenium IDE deve ser usado apenas como uma ferramenta de prototipagem . Se quiser criar casos de teste mais avançados, você precisará usar o Selenium RC ou o WebDriver.

Breve introdução Controle remoto Selenium (Selenium RC)

O Selenium RC foi a estrutura de teste carro - chefe de todo o projeto Selenium por um longo tempo. Esta é a primeira ferramenta de teste automatizado da web que permite aos usuários usar uma linguagem de programação de sua preferência . A partir da versão 2.25.0, RC pode suportar as seguintes linguagens de programação:

  • Java
  • C #
  • PHP
  • Pitão
  • Perl
  • Rubi

Breve introdução WebDriver

O WebDriver prova ser melhor do que o Selenium IDE e o Selenium RC em muitos aspectos. Ele implementa uma abordagem mais moderna e estável na automação das ações do navegador. O WebDriver, ao contrário do Selenium RC, não depende do JavaScript para os testes de automação do Selenium. Ele controla o navegador comunicando-se diretamente com ele.

Os idiomas suportados são iguais aos do Selenium RC.

  • Java
  • C #
  • PHP
  • Pitão
  • Perl
  • Rubi

Grade de selênio

Selenium Grid é uma ferramenta usada junto com Selenium RC para executar testes paralelos em diferentes máquinas e navegadores ao mesmo tempo. A execução paralela significa executar vários testes ao mesmo tempo.

Características:

  • Permite a execução simultânea de testes em vários navegadores e ambientes.
  • Economiza muito tempo .
  • Utiliza o conceito de hub e nós . O hub atua como uma fonte central de comandos Selenium para cada nó conectado a ele.

Nota sobre suporte a navegador e ambiente

Por causa de suas diferenças arquitetônicas, Selenium IDE, Selenium RC e WebDriver oferecem suporte a diferentes conjuntos de navegadores e ambientes operacionais.

Selenium IDE WebDriver
Suporte para navegador Mozilla Firefox Internet Explorer versões 6 a 11, Microsoft Edge de 32 e 64 bits versão 12.10240 e superior (suporte parcial a algumas funcionalidades em desenvolvimento) Firefox 3.0 e superior Google Chrome 12.0. e superior Opera 11.5 e superior Android - 2.3 e superior para telefones e tablets (dispositivos e emuladores) iOS 3+ para telefones (dispositivos e emuladores) e 3.2+ para tablets (dispositivos e emuladores) HtmlUnit 2.9 e superior
Sistema operacional Windows, Mac OS X, Linux Todos os sistemas operacionais em que os navegadores acima podem ser executados.

Nota: Selenium WebDriver é denominado como o sucessor do Selenium RC, que foi descontinuado e anunciado oficialmente pelo SeleniumHQ.

Como escolher a ferramenta de selênio certa para sua necessidade

Ferramenta Por que escolher?

Selenium IDE

  • Para aprender sobre os conceitos de teste automatizado e Selenium, incluindo:
  • Comandos Selenese, como type, open, clickAndWait, assert, verify, etc.
  • Localizadores como id, nome, xpath, seletor css, etc.
  • Execução de código JavaScript personalizado usando runScript
  • Exportando casos de teste em vários formatos.
  • Para criar testes com pouco ou nenhum conhecimento prévio em programação.
  • Para criar casos de teste simples e suítes de teste que você pode exportar posteriormente para RC ou WebDriver.
  • Para testar um aplicativo da web apenas no Firefox e no Chrome.

Selenium RC

  • Para projetar um teste usando uma linguagem mais expressiva do que o selenês
  • Para executar seu teste em navegadores diferentes (exceto HtmlUnit) em sistemas operacionais diferentes.
  • Para implantar seus testes em vários ambientes usando Selenium Grid.
  • Para testar seu aplicativo em um novo navegador que suporte JavaScript.
  • Para testar aplicativos da web com cenários complexos baseados em AJAX.

WebDriver

  • Para usar uma determinada linguagem de programação ao projetar seu caso de teste.
  • Para testar aplicativos ricos em funcionalidades baseadas em AJAX.
  • Para executar testes no navegador HtmlUnit.
  • Para criar resultados de teste personalizados.

Grade de selênio

  • Para executar seus scripts Selenium RC em vários navegadores e sistemas operacionais simultaneamente.
  • Para executar um grande conjunto de testes, isso precisa ser concluído o mais rápido possível.

Uma comparação entre selênio e QTP (agora UFT)

Quick Test Professional (QTP) é uma ferramenta de teste automatizada proprietária que pertencia à empresa Mercury Interactive antes de ser adquirida pela Hewlett-Packard em 2006 . O Selenium Tool Suite tem muitas vantagens sobre o QTP, conforme detalhado abaixo -

Vantagens e benefícios do selênio sobre QTP

Selênio QTP
Código aberto , de uso gratuito e gratuito. Comercial .
Altamente extensível Complementos limitados
Pode executar testes em diferentes navegadores Só pode executar testes no Firefox , Internet Explorer e Chrome
Suporta vários sistemas operacionais Só pode ser usado no Windows
Suporta dispositivos móveis QTP suporta automação de teste de aplicativo móvel (iOS e Android) usando a solução HP chamada - HP Mobile Center
Pode executar testes enquanto o navegador está minimizado Precisa ter o aplicativo em teste para estar visível na área de trabalho
Pode executar testes em paralelo . Só pode ser executado em paralelo, mas usando o Quality Center, que também é um produto pago.

Vantagens do QTP sobre o selênio

Vantagens do QTP sobre o selênio
QTP Selênio
Pode testar aplicativos da web e de desktop Só pode testar aplicativos da web
Vem com um repositório de objetos integrado Não tem repositório de objetos integrado
Automatiza mais rápido do que o Selenium porque é um IDE completo. Automatiza em um ritmo mais lento porque não tem um IDE nativo e apenas IDE de terceiros podem ser usados ​​para desenvolvimento
O teste orientado a dados é mais fácil de executar porque tem tabelas de dados globais e locais integradas . O teste orientado a dados é mais complicado, pois você precisa contar com os recursos da linguagem de programação para definir valores para seus dados de teste
Pode acessar controles dentro do navegador (como a barra de Favoritos, barra de endereço, botões Voltar e Avançar, etc.) Não é possível acessar elementos fora do aplicativo da web em teste
Fornece suporte profissional ao cliente Nenhum suporte oficial ao usuário está sendo oferecido.
Possui capacidade nativa para exportar dados de teste em formatos externos Não tem capacidade nativa para exportar dados de tempo de execução para formatos externos
Suporte de parametrização é construído A parametrização pode ser feita por programação, mas é difícil de implementar.
Os relatórios de teste são gerados automaticamente Sem suporte nativo para gerar relatórios de teste / bug.

Embora claramente o QTP tenha recursos mais avançados, o Selenium supera o QTP em três áreas principais:

  • Custo (porque o Selênio é totalmente gratuito)
  • Flexibilidade (devido a uma série de linguagens de programação, navegadores e plataformas que pode suportar)
  • Teste paralelo (algo que o QTP é capaz, mas apenas com o uso do Quality Center)

Resumo

  • Todo o Selenium Software Testing Suite é composto por quatro componentes:
  • Selenium IDE, um complemento do Firefox que você só pode usar na criação de casos de teste e suítes de teste relativamente simples.
  • Selenium Remote Control, também conhecido como Selenium 1, que é a primeira ferramenta Selenium que permite aos usuários usar linguagens de programação na criação de testes complexos.
  • WebDriver, a inovação mais recente que permite que seus scripts de teste se comuniquem diretamente com o navegador, controlando-o, assim, no nível do sistema operacional.
  • Selenium Grid também é uma ferramenta usada com Selenium RC para executar testes paralelos em diferentes navegadores e sistemas operacionais.
  • O Selenium RC e o WebDriver foram fundidos para formar o Selenium 2.
  • O selênio é mais vantajoso do que o QTP em termos de custos e flexibilidade. Ele também permite que você execute testes em paralelo, ao contrário do QTP, onde você só tem permissão para executar testes em sequência.

Artigos interessantes...