terça-feira, 9 de outubro de 2012

Alguma coisa sobre Selenium


  
Selenium teve sua origem em 2004, quando Jason Huggins fazia testes internos na ThoughtWorks (<3 ), e percebeu que os mesmos tomavam grande parte de seu tempo. Então desenvolveu uma biblioteca em JavaScript que conduzia as interações em uma pagina web permitindo executar seus testes de forma automática em vários navegadores. Após sucessivos aprimoramentos esta biblioteca veio a se tornar o Selenium Core, que hoje faz parte do Selenium RC e IDE. Por volta de 2006, um engenheiro da Google, começou a trabalhar em um projeto chamado  WebDriver. A Google na época era uma grande usuária do Selenium, porem como o mesmo utilizava JavaScript tinha algumas limitações em quesitos como segurança. O WebDriver tinha o objetivo de sanar estas limitações do Selenium.
Em 2008 ocorreu a fusão entre o Selenium e WebDriver, provendo aos dois projetos recursos adicionais para seus usuários e melhorias nos serviços. Hoje o Selenium é largamente utilizado e vem se aprimorando ao decorrer do tempo. Grupos autônomos também desenvolvem aplicações e plug-ins para dar suporte ao Selenium, as quais podem ser verificadas na página oficial da ferramenta [http://seleniumhq.org/]. Basicamente, o Selenium é um framework para desenvolvimento e automatização de testes funcionais de aplicações, onde estes testes podem ser desenvolvidos diretamente no navegador ou então através de linguagens de programação. A ferramenta está disponível em três formas: Selenium IDE, Selenium RC e Selenium Grid. O Selenium IDE é apresentado como sendo um plug-in para o Firefox, nele é possível realizar testes interagindo diretamente com o navegador web. O Selenium RC possibilita rodar grupos de testes (suite) que podem ter sidos criados pela IDE ou através de linguagens de programação suportadas, sendo elas: C#, Java, Python, Ruby entre ambientes de testes derivados destas linguagens. E por ultimo, o Selenium Grid que basicamente permite rodar testes em paralelo.

            Para realizar a instalação no Windows são necessários os seguintes componentes.
·         Selenium IDE
·         Selenium RC
·         Java Development Kit (JDK)
·         Firefox

Inicialmente é necessário ter instalado o Java na máquina a ser utilizada assim como o navegador Firefox. Como dito anteriormente, o Selenium IDE foi desenvolvido como sendo um plug-in para o Firefox, e assim sendo, após obter o arquivo ele pode ser instalado a partir do menu ‘Componentes’  no próprio Firefox. É necessário reiniciar o navegador após a instalação para que a ferramenta possa ser utilizada, ela pode ser acessada através do menu ‘Desenvolvedor’.
Para o Selenium RC não é necessário instalação, pois ele está disponibilizado como um arquivo ‘jar’ podendo ser executado diretamente. O Selenium RC é executado a partir da linha de comando, e para isto, é necessário fazer a adição do Java às bibliotecas do Windows, para que ele possa usar na execução do programa. Um tutorial completo para fazer esta configuração encontra-se em (http://richardikeda.com/blog/java-compilando-pelo-prompt.html). 
O Selenium IDE é uma ferramenta para automação de testes baseado na técnica “Record and Play”. Basicamente, o usuário ‘grava’ uma sessão realizada no navegador e após é possível fazer com que a ferramenta repita todos os passos feitos anteriormente de forma automatizada.
A ferramenta também permite fazer alteração das ações gravadas, assim como a verificação de valores gerados a partir dessas ações. Através da IDE é possível fazer isto facilmente somente selecionando os itens da página desejados no próprio navegador e marcando o comando necessário, já que todas as ações são gravadas. Possui uma interface simples e não é necessário o domínio de uma linguagem de programação para sua utilização, porém, para realização de testes mais complexos é aconselhado um conhecimento mais abrangente de seus comandos.

Figura 1. Interface do Selenium IDE.


A imagem ilustra a interface principal do Selenium IDE onde:
1.                  Local destinado aos casos de testes.
2.                  Local destinado à exibição dos comandos gravados em uma seção no navegador.
3.                  Local destinado a informações sobre os comandos e outras em geral.
4.                  É possível fazer a edição de comandos neste local.
5.                  Botões utilizados para execução dos testes.
6.                  Menus disponíveis na ferramenta.

Os testes são gerados como uma tabela em um arquivo ‘html’ e podem ser visualizados em qualquer navegador. A ferramenta também oferece a opção de exportar os testes para as linguagens suportadas (Java, C#, Phyton, etc...).
Figura 2. Exemplo de um Teste gerado pela Ferramenta.

A tabela é gerada com três colunas sendo nesta ordem cada uma responsável por armazenar o comando, componente e valor. Note que nem sempre um valor é necessário. Já o Selenium RC é um servidor escrito em Java que recebe chamadas de um arquivo de testes e se comunica diretamente com o navegador executando essas chamadas e fazendo os testes propostos. Ele permite que os testes sejam feitos em outros navegadores que não sejam o Firefox, aonde a IDE está disponível. Além disso, ele possibilita que se façam testes de forma interativa, ou seja, digitando os códigos e executando-os passo-a-passo.
O Selenium RC é executado a partir da linha de comando e são necessários alguns parâmetros expostos a seguir:
 java -jar selenium-server.jar -multiwindow -htmlSuite <Navegador> <Pagina de Testes> <Casos de Teste> <Resultados>
Onde:
Navegador: É o navegador onde os testes serão realizados.
(Ex: "*iexplore" | "*chrome")
Pagina de Testes: Identifica a página alvo dos testes.
                        (Ex: “http://www.google.com”)
Casos de Testes: Arquivo que contém os casos de testes.
                        (Ex: “teste.html”)
Resultados: Arquivo onde os resultados serão gravados. É aconselhável identificar este arquivo com o navegador utilizado.
                        (Ex: “FFResults.html” | “IEResults.html”)

Para a execução de um caso de testes no Firefox, por exemplo, o comando ficaria desta forma:
 java -jar selenium-server.jar -multiwindow -htmlSuite "*chrome" "http://www.google.com" "Testes.html" "FFResults.html" .


Nenhum comentário:

Postar um comentário