SERVIDOR SELENIUM - RC

SERVIDOR SELENIUM


            O Servidor Selenium, possui dentro de si um conjunto de classes em java e Javascript responsáveis por converter comandos em ações, possui toda uma interface de execução muito similar á do Selenium IDE.
            O Servidor Selenium esta na sua 29ª atualização, porem com os avanços em outras interfaces Selenium há uma grande possibilidade de não haver mais atualizações.
Para a execução do Selenium RC é imprescindível que o Servidor esteja ativo, e para ativa-lo há duas formas conforme instrução abaixo:

ATIVAÇÃO VIA “PROMPT DE COMANDO” MSDOS:


                    1ª Crie um diretório Fixo de preferencia na Raiz do computador responsável pela execução: “C:\BaseTeste\”
                 
                   2ª Cole nesse diretório o servidor Selenium “selenium-server-standalone-2.29.0.jar”.

                    3ª Num bloco de nodas escreva a seguinte instrução:

“cd C:\ BaseTeste
java -jar selenium-server-standalone-2.29.0.jar”
                
                  4ª Salve o arquivo com a extensão (.bat);
                  
                  5ª Execute-o como Administrador da maquina.

  


Será aberta tela similar a imagem abaixo:



Ativação via código Fonte

Dentro do código correspondente a seu teste adicione o código abaixo:

SeleniumServer server;
server.start();
O código fonte ficara da seguinte maneira:


OBSERVAÇÕES:
o   O Servidor deve ser iniciado antes do Selenium respentando sempre a sequencia acima.
o   Ao final do teste é importante inserir o código (server.stop();), conforme ilustração abaixo:






DISSECANDO UM TESTE

DISSECANDO UM TESTE


         Antes de iniciarmos uma execução é importante conhecer a composição do teste e a importância de cada elemento. Abaixo farei um breve relado descritivo dos componentes de nosso teste.
         A importação padrão do Selenium IDE traz para nosso teste as bibliotecas abaixo, porem de acordo com a necessidade, podemos incrementar esse pacote.
o  
                                   import com.thoughtworks.selenium.*; Biblioteca responsável por converter comandos em ações compreendida pelo Browser e a pagina WEB.
           import org.junit.After; “After” é uma instrução da biblioteca JUnit responsável por direcionar uma determinada ação do teste em seu devido tempo em uma sequencia logica. (After -> Depois de uma ação faça).
o                                 import org.junit.Before; “Before” é uma instrução da biblioteca JUnit responsável por direcionar uma determinada ação do teste em seu devido tempo em uma sequencia logica. (Before -> Antes de uma ação faça).
             import org.junit.Test; “Teste” é uma instrução da biblioteca JUnit responsável por especificar que um determinado conjunto de instruções é um teste e antes dele “Before” deve ocorrer um evento e “After” depois dele deve ocorrer outro evento especificado.
           import static org.junit.Assert.*; Biblioteca de validação e comparação.



Diagrama de Execução de uma Classe de teste.


  Bibliotecas utilizadas em nosso teste.



Como ilustrado no “Diagrama de Execução de uma Classe de teste”, antes que a ferramenta Junit execute nosso teste é necessário estabelecer algumas configurações:

o    DefaultSelenium: Vai atribuir ao Selenium algumas instruções:
o    “localhost”: execução Local pode ser substituída pelo IP de um servidor;
o    4444: porta padrão atribuída para o acesso ao servidor;
o    “*chome”: Navegador pré-definido para a execução, pode ser os seguintes códigos:

*iexplore 
Internet Explorer
*firefox
Firefox
*safari
Safari
*opera
Opera
*googlechrome
Google Chrome

o    “http://192.168.100.26:8080/”: Link correspondente a pagina que testaremos.


         O teste é composto por uma gama de comandos, da biblioteca Selenium, responsáveis por ações como clicar, aguardar um elemento, inserir um texto em um campo. Entre outros conforme exemplo abaixo. 



  Lista dos principais comandos

Comando
Alvo
Valor
Descrição
open
Link


type
Endereço do campo
1234
Imputa texto no campo especificado
click
Endereço do Botão ou CheckBox

Clica num alvo especificado
waitForPageToLoad


Aguarda a pagina ser carregada
select
Endereço do Combobox
SP
Seleciona valores em um combobox
fireEvent
Endereço do campo
blur
Atualiza o campo ativando uma ação ou serviço pre-definido.

    E com a instrução “@After” fechamos nosso teste.






PROJETO ECLIPSE - SELENIUM RC


PROJETO ECLIPSE


    Com o auxilio do Eclipse poderemos refinar nosso projeto de forma a customizar diversas funções do Selenium e incluir nossas próprias validações funções etc..
Abra o Eclipse e siga os passos abaixo:


    1- Clique no atalho “NEW”, e crie um “Projeto Java”, conforme ilustração abaixo:



         2-  Após a criação do projeto, crie três pacotes (Package), um pacote para os (testes), um pacote para a (Massa de dados) e um pacote para eventuais (funções) que venhamos a desenvolver.


3 - Dentro do pacote de teste que criamos, crie uma classe que será nosso teste.


 4 - Abra o arquivo com a extensão (.java) que salvamos no capitulo anterior.


 5 -    Cole o código dentro da classe que criamos anteriormente.


  6 - Clique sobre o projeto e vá até as propriedades.



 7 -  Clique na opção “Java Build Path”, na sequencia clique em “Add External JARs...”.


  8 -  Localize as bibliotecas (junit-4.0.jar, selenium-server-standalone-2.29.0.jar), após a seleção clique em (Abrir).


    Após a importação do teste e as bibliotecas o teste ficara conforme ilustração abaixo é bom ressaltar que a conversão que o Selenium IDE faz não é 100 % alguns comandos podem não ser reconhecidos como, por exemplo, o comando “verifyTrue”.













SELENIUM IDE

SELENIUM IDE

       O Selenium IDE (Integrated Development Environment) é uma ferramenta muito útil para a elaboração dos casos de teste, pois possui funcionalidades que dispensam o manuseio direto com o código fonte da pagina tornando ágil e pratica a elaboração de um caso de teste. O mesmo é um Plugin Free para o Navegador FireFox , podendo ser integrado facilmente pelo Link a baixo:

1     
          -      Copie o link.
2            
          -      Cole direto na barra de endereço do Firefox.


        Ele possui uma grande diversidade de comandos de validação, armazenamento de evidencia e manipulação das paginas WEB, mesmo com essa gama de funcionalidades o Selenium IDE não é tão completo, por ser limitado ao navegador que o acolhe “FireFox”.

Para esse guia utilizaremos o Selenium IDE para gravarmos os passos para nossa automação. Na parte superior da ferramenta existe um botão vermelho (REC),  após ser ativado todos as ações que for executadas na pagina WEB será gravada em um Script em HTML.


  Conforme a sequencia de ações o script vai se estruturando conforme ilustração abaixo:


Após criar o teste, clique em “Arquivo (F)” - > “Exportar Teste Como...”  ->  ”Java / JUnit 4 / Remote Control”, conforme ilustração abaixo.


O processo acima ira gerar um arquivo com a extensão (. java) que utilizaremos em breve.



SELENIUM RC




SELENIUM RC

Selenium RC uma ferramenta baseada em código JavaScript, traduzindo comandos dinâmicos para ações em paginas WEB.  
Com o dinamismo de mercado empresas de desenvolvimento tem utilizado todas as soluções possíveis para se tornarem competitivas, com promessas de redução de prazos e qualidade final de produto. Para isso é necessário exaustão de testes partindo do inicio dos requisitos até a entrega final, porem testes e profissionais de teste são caros e susceptíveis a falhas  a automação vem para substituir uma parte desse processo, conivente a repetição, exaustão geração de massas entre outras utilidades.
Automação de testes vem ganhando cada vez mais espaço, e ferramentas de testes vêm ganhando cada vez mais calibre a fim de atingir eficiência simulando com perfeição ações humanas com a vantagem de agilidade e assertividade.
Para nós analistas (Criadores de automação) não é tão simples a manipulação dessas ferramentas, cabe a nós a expertise para dar autonomia e inteligência de processo para nosso trabalho de acordo com a necessidade.

Esse material ilustrará inúmeras funcionalidades que utilizaremos e aperfeiçoaremos, utilizando Java e Selenium RC.

Por um longo período o Selenium RC (Remote Control) foi o “carro chefe” no que se refere à automação de testes WEB pela sua diversidade de linguagens de programação e a flexibilidade para quase todos os navegadores. A pesar de não ser mais a principal ferramenta Selenium, hoje é uma das soluções mais completas em funcionalidades e cobertura para automação mantendo suporte e manutenção para suas principais linguagens (Java, JavaScript, Ruby, PHP, Python, Perl e C #).
Em 2004 Jason Huggins desenvolveu uma solução baseada em JavaScript que traduzia alguns comandos para a linguagem nativa de browsers “HTML” permitindo assim conduzir ações a pagina WEB.
O Selenium RC funciona com o seguinte conceito:
.Comandos são criados partindo das linguagens (Java, JavaScript, Ruby, PHP, Python, Perl e C #).
.O Servidor Selenium, baseado em (JavaScrip, Java e outras linguagens) atua como um proxy traduzindo os comandos em ações compreendidas pelos browsers.

.O serviço atua sem problemas nos sistemas operacionais (Windows, Linux, Mac OS).




       Com o passar dos anos essa solução foi se tornando defasada, no sentido de testes exploratórios, plataformas mobile e a dependência do Servidor Selenium, para seu funcionamento.
O Google um dos grandes exploradores da solução (Selenium RC) se uniu ao criador do Selenium (Jason Huggins) e em 2006 iniciaram o projeto (Selenium WebDrive), a grande proposta do Selenium WebDrive é uma melhor integração com o código nativo do Browser e a pagina Web, proporcionando assim ao testador mais velocidade na execução do teste e captando detalhes mais profundos e característicos da aplicação sendo testada e a integração da mesma com o navegador.
Hoje o Selenium WebDrive é uma ferramenta em constante desenvolvimento e a pesar do sucesso e abrangência ainda não possui suporte para todas as linguagens sua principal característica hoje é a independência do (Servidor Selenium) para a execução e a integração com testes em sistemas operacionais Mobile como Android,IOS entre outros.