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
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 |
|
Selenium RC |
|
WebDriver |
|
Grade de selênio |
|
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
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.