quinta-feira, 24 de março de 2011

Integração contínua - Parte II - Automatizando testes

"Selenium IDE é um ambiente integrado de desenvolvimento para scripts de testes automatizados. Ele é implementado como uma extensão do Firefox e permite gravar, editar e depurar os testes.O  Selenium IDE inclui o Selenium Core , permitindo que você facilmente e rapidamente possa gravar e reproduzir os testes no ambiente real que será executado." (http://seleniumhq.org/projects/ide)

É muito simples criar seus scripts de testes utilizando o Selenium IDE por ser uma ferramenta gráfica integrada com o Firefox. Além de falicitar a escrita e execução de testes de sistema a ferramenta também simplifica  os testes de regressão, já que a qualquer momento pode-se realizar um mesmo teste nas novas versões do sistema.

A escrita dos scripts de maneira gráfica é simples, com o Selenium IDE aberto basta clicar com o botão direito em cima do elemento e adicionar o evento, originalmente o script é gerado em HTML mas pode ser exportado para C#, PHP, Java e outras linguagens.

O Selenium RC é um servidor escrito em java. Ele recebe chamadas http, executa os testes e envia de  volta para o seu programa os resultados. As chamadas vem dos testes unitários, como junit, por exemplo).

"Selênio RC vem em duas partes.

  • Um servidor, que executa automaticamente e e atua como um proxy HTTP para solicitações web a partir do browser.

  • Bibliotecas cliente para a linguagem de programação favorita." (http://seleniumhq.org/projects/remote-control)

Primeiramente vamos automatizar testes escritos utilizando o Selenium IDE e exportados com a propria ferramenta para o formato HTML.Os seguintes passos devem ser executados:

  1. Faça o downlod do Selenium RC no site oficial (site), crie o diretorio "C:\selenium" e salve o arquivo no mesmo, crie também o diretório "C:\selenium\testes" e salve seus scripts de testes escritos pelo Selenium IDE.

  2. Abra o Hudson e crie uma nova tarefa, dê um nome, selecione a opção "Construir um projeto de software free-style" e clique em "OK".
  3. Figura 1 - Criando um projeto

  4.  Agora em "Construção" e selecione "Executar comando do Windows" no ComboBox.Também é posível executar um comando de Shell do GNU/Linux.
  5. Figura 2 - Comando Window
  1. No campo que se abriu iremos adicionar o seguinte comando:

    java -jar C:\selenium\selenium-server.jar -htmlSuite "*firefox C:\Program Files (x86)\Mozilla Firefox\firefox.exe" "http://www.google.com" "C:\selenium\testes\testehtml.html" "C:\results.htm"


    Estamos invocando o selenium server, a opção - htmlSuite indica que executaremos uma Suite de testes criadas com o Selenium IDE, os demais parametros indicam respectivamente: o browser, a URL inicial dos testes, o script de testes e o endereço de arquivo de resultados.Você deve alterar o endereço do browser, do aquivo script de teste e resultados conforme suas necessidades.
  1. Para finalizar basta clicar no botão "Salva"  e em seguida "Construir Agora" para executar os testes do arquivo "C:\selenium\testes\testehtml.html".

Existe o plugin SeleniumHQ htmlSuite (página), que simplifica a tarefa que acabamos de executar. O plugin deve ser instalado através do "Gerenciador de plugins" do Hudson. Depois de instalar o SeleniumHQ htmlSuite ele deve ser configurado através dos seguintes passos:


  1. Faça o downlod do Selenium RC no site oficial (site), crie o diretorio "C:\selenium" e salve o arquivo no mesmo, crie também o diretório "C:\selenium\testes" e salve seus scripts de testes escritos pelo Selenium IDE.
     
  2. Em "Gerenciar Hudson" procure pela opção " Selenium Remote Control", indique o endereço de selenium-server e salve.
  3. Figura 3 - Selenium Remote Control
  4. Clique em "Nova Tarefa" selecione a opção "Construir um projeto de software free-style" e clique em "OK".

  5. Agora em "Construção" e selecione "SeleniumHQ htmlSuite Run" no ComboBox.

  6. Figura 4 - SeleniumHQ Plugin
  7. Basicamente o SeleniumHQ invoca o SeleniumRC e passa parâmetros, estes são os mesmo indicados no script de comando Windows ou para o Shell do Linux, aqui a tarefa é simplifica pela interface, conforme mostrado na figura 5:
Figura 5 - Configurando SeleniumHQ

    • Em browser deve-se indicar qual será usado: Firefox, Intenet Explore, Chrome ou outro.Também é necessario indicar o endereço completo para o brownser se não existir um path para o mesmo.
      • startURL indica a página inicia onde os testes serão executados.

        • suiteFile é o arquivo onde os testes estão escritos, ou uma suite que invoca vários arquivos de teste.

        • resultFile é o arquivo onde será salvo o resultado da execução.

        • other é destinado a outros argumentos como, por exemplo, -timeout.
      1.  Salve as novas configurações e execute a construção.


      segunda-feira, 14 de março de 2011

      Integração contínua - Parte I - Instalando o Hudson

      A escrita, execução e análise de resultados de testes é uma atividade que exige demasiado esforço , além disso é uma atividade periódica e nem sempre se pode contar com o comprometimento da equipe com a execução total dos testes.O mesmo pode-se dizer sobre scripts de builds tanto do Ant quanto do Maven.

      Alguns teste também impõe certas características  que dificultam sua execução, tais como: testes que manipulam muitas dados.

      A solução proposta neste texto é o Hudson,  uma ferramenta de integração contínua usada automatizar builds e testes, desta forma temos um servidor de testes e builds que quando encontra alterações no repositório SVN ou Git  executa os builds e testes automaticamente. A  ferramenta vem ganhando adeptos pela sua facilidade de uso e o grande número de plugins disponíveis.

      A instalação do Hudson é simples e bem documentada no site oficial da ferramenta. É importante destacar que o Hudson roda como uma aplicação web e necessita de um container servlet, por padrão ele roda sob o Winstone não sendo necessária a instalação de outro container. Então basicamente existem 2 formas de instalação:

      Instalação simples:

      1. Faça download do arquivo hudson.war
      2. Execute "java -jar hudson.war", executa o Winstone automaticamente.

      Instalação elaborada:

      1. Faça download do arquivo hudson.war
      2. Instale no seu container servlet GlassFish, JBoss, Apache Tomcat ou outros.
      3. A instalação é feita como de qualquer aplicação web,  respeitando as diferenças de cada container servlet.

      Em nosso exemplo vamos utilizar a instalação simples:

      Depois de baixar o arquivo hudson.war  e executar o comando "java -jar hudson.war" no prompt de comando o Hudson é carregado e "startado" pelo Winstone.

      A interface do Hudson é web, então no browser digitamos a seguinte URL:

      http://localhost:8080



      Neste caso estamos executando o Hudson na maquina local através da porta padrão 8080, está porta é a padrão mas pode ser alterada posteriormente, para a primeira execução a porta 8080 deve estar livre, se a maquina local tiver outro serviço como o Apache rodando na porta, o mesmo deve ser temporariamente interrompido.

      Se estiver utilizando Windows clique no menu "Gerenciar Hudson" e então "Instalar como um serviço do Windows", neste caso o Hudson irá iniciar juntamente com o sistema operacional. Será pedido o diretório de instalação, quando o Hudson foi carregado o diretório "C:\Hudson" foi criado e será nela que iremos realizar a instalação.



      Basta clicar no botão "Instalar" aguarda a instalação finalizar, logo após clique em "Sim" para reiniciar o Hudson.

      terça-feira, 1 de março de 2011

      Selenium IDE, ferramenta de teste automatizado

      "Selenium IDE é um ambiente integrado de desenvolvimento para scripts de testes automatizados. Ele é implementado como uma extensão do Firefox e permite gravar, editar e depurar os testes.Selenium IDE inclui o Selenium Core , permitindo que você facilmente e rapidamente possa gravar e reproduzir os testes no ambiente real que será executado."

      É muito simples criar seus scripts de testes utilizando o Selenium IDE por ser uma ferramenta gráfica integrada com o Firefox.Além de automatizar os testes de sistema a ferramenta também simplifica  os testes de regressão, já que a qualquer momento pode-se realizar um mesmo teste nas novas versões do sistema.

      A escrita dos scripts de maneira gráfica é simples, com o Selenium IDE aberto basta clicar com o botão direito em cima do elemento e adicionar o evento, originalmente o script é gerado em HTML mas pode ser exportado para C#, PHP, Java e outras linguagens.

      Existe a versão do Selenium WebDrive em que se pode escrever os scripts na linguagem suportada, está versão é indicada para testes mais elaborados e por usuários familiarizados com a ferramenta, geralmete usa-se o Selenium IDE para testes básicos, exporta-se o script e depois edita-se o script para realizar testes mais elaborados.

      O download da ferramenta pode ser feito em : http://seleniumhq.org/download/

      Referência:

      http://seleniumhq.org/ - Acessado em 01-03-11