O que é o Selenium? Tutorial de introdução
O que é o Selenium?
Selenium é uma estrutura de teste automatizado gratuita (de 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 Selenium Scripts de teste. Teste feito usando o Selenium ferramenta de teste é geralmente chamada de Selenium Ensaios.
Percepções de especialistas
Evite usar atrasos fixos de suspensão em seus testes. Em vez disso, use esperas explícitas (como WebDriverWait) para aguardar o carregamento dos elementos. Isso torna seus scripts mais confiáveis e rápidos, pois respondem dinamicamente às condições reais da página — uma prática recomendada essencial para estudantes em todos os lugares, começando com Selenium. "
Selenium Conjunto de ferramentas
Selenium Software não é apenas uma ferramenta, mas um conjunto de software, cada peça atendendo a diferentes necessidades. Selenium Necessidades de teste de controle de qualidade de uma organização. Aqui está a lista de ferramentas
- Selenium Ambiente de Desenvolvimento Integrado (IDE)
- Selenium Controle Remoto (RC)
- webdriver
- Selenium Grade
No momento, Selenium RC e WebDriver são mesclados em uma única estrutura para formar Selenium 2. Selenium 1, aliás, refere-se a Selenium RC.
Video Tutorial Selenium
Clique aqui se o vídeo não estiver acessível
Quem desenvolveu Selenium?
Como Selenium é uma coleção de ferramentas diferentes, mas também teve desenvolvedores diferentes. Abaixo estão as principais pessoas que fizeram contribuições notáveis para o Selenium PROJETO
Principalmente, Selenium foi criado por Jason Huggins em 2004. Engenheiro da ThoughtWorks, ele estava trabalhando em uma aplicação web que exigia testes frequentes. Tendo percebido que os repetitivos testes manuais de suas aplicações estavam se tornando cada vez mais ineficientes, ele criou um JavaScript programa que controlaria automaticamente as ações do navegador. Ele chamou este programa de “JavaScriptTestRunner. "
Vendo potencial nesta ideia para ajudar a automatizar outras aplicações web, ele fez JavaScriptRunner de código aberto, que mais tarde foi renomeado Selenium núcleo. Para aqueles interessados em explorar outras opções para testes de aplicações web, dê uma olhada nestes Selenium alternativas.
O problema da mesma política de origem
A política de Mesma Origem proíbe JavaCódigo de script acessando elementos de um domínio diferente daquele onde foi iniciado. Por exemplo, o código HTML em www.google.com usa um JavaPrograma de script “randomScript.js”. A mesma política de origem permitirá apenas que randomScript.js acesse páginas dentro do 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 de Selenium RC, os testadores precisavam instalar cópias locais de ambos Selenium Núcleo (um JavaPrograma de script) e o servidor web que contém o aplicativo web que está sendo testado para que eles pertençam ao mesmo domínio
Nascimento de Selenium Controle remoto (Selenium RC)
Infelizmente; testadores usando Selenium A Core teve que instalar toda a aplicação em teste e o servidor web em seus próprios computadores locais devido às restrições impostas pelo mesma política de origem. Então, outro engenheiro da ThoughtWork, Paulo Hammant, decidiu criar um servidor que atuará como um proxy HTTP para “enganar” o navegador fazendo-o acreditar que Selenium O Core e o aplicativo da web que está sendo testado vêm do mesmo domínio. Este sistema ficou conhecido como Selenium Controle remoto or Selenium 1.
Nascimento de Selenium Grade
Selenium A grade foi desenvolvida por Patrick Lightbody para atender à necessidade de minimizar ao máximo os tempos de execução de testes. Ele inicialmente chamou o sistema de “Controle de qualidade hospedado.” Foi capaz de capturar screenshots do navegador durante etapas significativas, e também de enviando Selenium comandos para diferentes máquinas simultaneamente.
Nascimento de Selenium IDE
Shinya Kasatani do Japão criou Selenium IDE, um Firefox e extensão do Chrome 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 Selenium IDE para o Selenium Projeto em 2006.
Nascimento do WebDriver
Simon Stewart criou o WebDriver por volta 2006 quando navegadores e aplicativos da web estavam se tornando mais poderosos e mais restritivos com JavaProgramas de script como Selenium Testemunho. Foi a primeira estrutura de teste multiplataforma que poderia controlar o navegador no nível do sistema operacional.
Nascimento de Selenium 2
In 2008, o todo Selenium A equipe decidiu fundir o WebDriver e Selenium RC para formar uma ferramenta mais poderosa chamada Selenium 2, com WebDriver sendo o núcleo. Atualmente, Selenium O RC ainda está em desenvolvimento, mas apenas em modo de manutenção. A maioria dos Selenium Os esforços do projeto estão agora focados em Selenium 2.
Então, por que o nome Selenium?
O nome Selenium veio de uma piada que Jason contou uma vez para sua equipe. Durante Seleniumdesenvolvimento, outro teste automatizado framework era popular feito pela empresa chamada Mercury interativo (sim, a empresa que originalmente fez o QTP antes de ser adquirida pela HP). Desde Selenium é um antídoto conhecido para Mercury envenenamento, Jason sugeriu esse nome e seus companheiros o adotaram. Então foi assim que chamamos esse quadro até o presente.
O que é o Selenium IDE?
Selenium Ambiente de Desenvolvimento Integrado (IDE) é o estrutura mais simples no Selenium suíte e é o mais fácil de aprender. É um Chrome e Firefox plug-in que você pode instalar tão facilmente quanto com outros plug-ins. Contudo, devido à sua simplicidade, Selenium IDE só deve ser usado como um ferramenta de prototipagem. Se quiser criar casos de teste mais avançados, você precisará usar Selenium RC ou WebDriver.
O que é o Selenium Controle remoto (Selenium RC)?
Selenium RC foi o estrutura de teste principal do todo Selenium projeto há muito tempo. Este é o primeiro automatizado teste da web ferramenta que permite que os usuários usem uma linguagem de programação de sua preferência. A partir da versão 2.25.0, o RC pode suportar as seguintes linguagens de programação:
O que é WebDriver?
O WebDriver prova ser melhor que Selenium IDE e Selenium RC em muitos aspectos. Implementa uma abordagem mais moderna e estável na automatização das ações do navegador. WebDriver, ao contrário Selenium RC, não depende de JavaRoteiro para Selenium Teste de automação. Ele controla o navegador comunicando-se diretamente com ele.
Os idiomas suportados são os mesmos do Selenium RC.
- Java
- C#
- PHP
- Python
- Perl
- Ruby
O que é o Selenium Grade?
Selenium A grade é uma ferramenta usado junto com Selenium RC para correr testes paralelos em diferentes máquinas e diferentes navegadores, tudo ao mesmo tempo. Execução paralela significa executar vários testes ao mesmo tempo.
Características:
- Habilita execução simultânea de testes in vários navegadores e ambientes.
- Poupa tempo enormemente.
- Utiliza o hub e nós conceito. O hub atua como uma fonte central de Selenium comandos para cada nó conectado a ele.
Selenium Suporte a navegador e ambiente
Devido às suas diferenças arquitetônicas, Selenium SDI, Selenium RC e WebDriver suportam diferentes conjuntos de navegadores e ambientes operacionais.
Selenium IDE | webdriver | |
---|---|---|
Suporte do navegador | Mozilla Firefox e Chrome |
Google Chrome +12 Firefox Internet Explorer 7+ e Edge Safári, HtmlUnit e PhantomUnit |
Sistema Operacional | Windows, Mac OS X, Linux | Todos os sistemas operacionais onde os navegadores acima podem ser executados. |
Nota: Opera Driver não funciona mais
Como escolher o certo Selenium Ferramenta para sua necessidade
ferramenta | Por que escolher? |
---|---|
Selenium IDE |
|
Selenium RC |
|
webdriver |
|
Selenium Grade |
|
Uma comparação entre Selenium e QTP (agora UFT)
Profissional de teste rápido (QTP) é uma ferramenta proprietária de testes automatizados que anteriormente pertencia à empresa Mercury interativo antes da Hewlett-Packard adquiri-lo em 2006. Seu proprietário posterior é a MicroFocus e a ferramenta é renomeada para UFT one. O Selenium Tool Suite tem muitas vantagens sobre QTP Conforme detalhado abaixo -
Vantagens e benefícios de Selenium sobre QTP
Selenium | QTP |
---|---|
Código aberto, podem ser utilizados gratuitamente. e grátis. | Comercial. |
Altamente extensível | Complementos limitados |
Pode executar testes em navegadores diferentes | Só é possível executar testes em Firefox, Internet Explorer e Chrome |
suportes vários sistemas operacionais | Só pode ser usado em Windows |
suportes dispositivos móveis | QTP oferece suporte à automação de testes de aplicativos móveis (iOS e Android) usando a solução HP chamada – HP Mobile Center |
Pode executar testes enquanto da navegador está minimizado | Precisa ter o aplicativo em teste para ficar visível na área de trabalho |
Pode executar testes em paralelo. | Só pode ser executado em paralelo, mas usando o Quality Center, que é novamente um produto pago. |
Estudos de caso do mundo real
🔍 Estudo de caso 1: Compatibilidade entre navegadores para o painel SaaS
Cenário
Uma empresa de software como serviço estava se preparando para lançar um painel de análise que precisava funcionar de forma consistente em navegadores modernos (Chrome, Firefox, Edge, Safari).
Desafio
Os testes manuais em cada navegador eram demorados, propensos a erros e não conseguiam acompanhar as rápidas iterações de desenvolvimento.
Solução com Selenium
Um engenheiro de controle de qualidade criou um Selenium Grade configurado para executar o mesmo conjunto de testes simultaneamente em vários navegadores e combinações de sistemas operacionais. Os testes foram criados em Python utilização Selenium WebDriver para ações como login, filtragem de gráficos e exportação de dados.
Resultado
- Duração da regressão reduzida em 80%.
- Descobriu-se precocemente bugs de renderização específicos do navegador (por exemplo, gráficos desalinhados no IE).
- Manteve UX de painel consistente em toda a matriz do navegador sem ciclos manuais extras.
⚙️ Estudo de caso 2: Integração CI/CD para aplicativo da Web via Selenium + TestNG
Cenário
Uma empresa de desenvolvimento web de médio porte utiliza um pipeline de CI/CD usando Jenkins. Eles precisavam garantir que as principais jornadas do usuário funcionassem após cada alteração no código.
Desafio
Novas implantações de build ocasionalmente interrompiam os fluxos de usuários (login, envio de formulários), escapando da detecção até os testes manuais no final do dia.
Solução com Selenium
Um testador implementou um JavaBaseada Selenium Suíte WebDriver integrada com TestNGOs testes abrangeram autenticação, atualizações de perfil e funcionalidades de pesquisa. Eles foram executados em todas as compilações do Jenkins, aproveitando a execução paralela e a parametrização do navegador.
Resultado
- Obteve feedback rápido sobre falhas: fluxos interrompidos foram sinalizados imediatamente.
- Reduziu os bugs pós-implantação em mais de 60%.
- Permitiu que os desenvolvedores resolvessem problemas antes que eles chegassem ao controle de qualidade.
🚀 Estudo de caso 3: Acelerando o lançamento de recursos para o Travel Aggregator
Cenário
Uma plataforma agregadora de viagens precisava lançar um recurso de reserva de voos reformulado. Testes de regressão manual em mais de 10 páginas levaram dias e bloquearam o lançamento.
Desafio
A pressão para reduzir o tempo de colocação do produto no mercado não conseguiu superar os ciclos de testes manuais, correndo o risco de atrasos ou redução de qualidade.
Solução com Selenium & Modelo de Objeto de Página
Um líder de automação de QA introduziu uma estrutura de Modelo de Objeto de Página (POM) em C#. Selenium Os scripts do WebDriver encapsulavam elementos e ações da página (pesquisar voos, aplicar filtros, casos de pagamento). Execuções de testes automatizadas eram acionadas todas as noites no GitLab CI.
Resultado
- O tempo de teste caiu de 3 dias para apenas 4 horas.
- A reutilização de scripts em vários recursos reduz o esforço de criação de scripts em 50%.
- A confiança aumentou: a versão foi enviada dentro do prazo e com poucos relatos de bugs.
Vantagens do QTP sobre Selenium
QTP | Selenium |
---|---|
Pode testar aplicativos da web e de desktop | Só pode testar aplicativos da web |
Vem com um repositório de objetos integrado | Não possui repositório de objetos integrado |
Automatiza mais rápido do que Selenium porque é um IDE completo. | Automatiza em um ritmo mais lento porque não possui um IDE nativo e apenas IDE de terceiros pode ser usado para desenvolvimento. |
O teste baseado em dados é mais fácil de executar porque possui tabelas de dados globais e locais integradas. | O teste orientado a dados é mais complicado, pois você precisa confiar nos 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, a barra de endereços, os botões Voltar e Avançar, etc.) | Não é possível acessar elementos fora do aplicativo Web em teste |
Fornece profissional suporte ao cliente | Nenhum suporte oficial ao usuário está sendo oferecido. |
Possui capacidade nativa para exportar dados de teste em formatos externos | Não possui capacidade nativa para exportar dados de tempo de execução para formatos externos |
O suporte à parametrização é construído | A parametrização pode ser feita via programação, mas é difícil de implementar. |
Os relatórios de teste são gerados automaticamente | Não há suporte nativo para gerar relatórios de testes/bugs. |
Embora claramente o QTP tenha recursos mais avançados Selenium supera o QTP em três áreas principais:
- Custo(Porque Selenium é 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
- A totalidade Selenium O Software Testing Suite é composto por quatro componentes:
- Selenium Ideia Firefox e complemento do Chrome que você só pode usar na criação de casos de teste e suítes de testes relativamente simples.
- Selenium Controle Remoto, também conhecido como Selenium 1, é o primeiro Selenium ferramenta que permitia aos usuários utilizar 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.
- Selenium RC e WebDriver foram fundidos para formar Selenium 2.
- Selenium é mais vantajoso que o Microfocus UFT One em termos de custos e flexibilidade.