= Testes Automatizados = [[PageOutline(1-3, Conteúdo)]] == Introdução == Essa página tem por objetivo auxiliar novos desenvolvedores interessados em criar testes automatizados para o Expresso. É recomendável que as pessoas tenham conhecimento de Java para poder automatizar os casos de teste. Apesar de não entrarmos em detalhes sobre como funciona o Maven, TestNG e Selenium, segue uma rápida introdução ao assunto: - [wiki:ExpressoTestCenter/auto/tutorial 5 Minutos com Maven, TestNG e Selenium] Para se aprofundar no assunto, sugiro ler os links contidos ao final da página. É extremamente importante seguir o padrão para o desenvolvimento dos casos de teste: - [wiki:ExpressoTestCenter/auto/padrao Padrão de Desenvolvimento] A documentação base dos casos de teste a serem automatizados está contida no Testlink [http://testlink.expressolivre.org]. == Pré-Requisitos == As instruções abaixo foram baseadas nos seguintes softwares: - Sistema operacional Ubuntu 10.10 - Sun JDK 6 - Eclipse WTP - Firefox - Selenium - Maven - TestNG Como Java é independente de plataforma, acredito que não seja problema realizar a instalação em outros ambientes. As versões dos softwares mencionadas são da época da escrita desse tutorial (Fevereiro de 2011). == Montando o Ambiente de Desenvolvimento == === Sun Java 6 SDK === Os seguintes passos foram necessários para a instalação do ambiente de desenvolvimento Java 6 no Ubuntu 10.10 (Maverick): 1. Abrir o synaptic 2. Ir em Settings->Repositoty 3. Abrir aba Other Software 4. Selecionar Canonical Parterns (não precisa selecionar o Source Code) 5. Fazer um reload para recarregar os novos pacotes 6. Procurar e instalar o pacote "sun-java6-jdk" e todas suas dependências === Eclipse WTP === Baixar o Eclipse WTP de Baixar [http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.6.1-201009090800/eclipse-SDK-3.6.1-linux-gtk.tar.gz/ Eclipse 3.6.1] e descompactar o arquivo no diretório desejado. Após descompactar o arquivo iniciar o eclipse e adicionar os seguintes plugins: - Plugin para o Maven: m2eclipse - http://m2eclipse.sonatype.org/sites/m2e - Plugin para o Subversion: Subclipse - http://subclipse.tigris.org/update_1.6.x - Plugin para o TestNG: testng - http://beust.com/eclipse A instalação dos plugins no eclipse é feita através do menu Help -> Install New Software... Para maiores detalhes, favor consultar a documentação do Eclipse. Depois de concluir a instalação dos plugins, é necessário ainda instalar um pacote do Ubuntu para integração java-subversion. Isso pode ser feito usando o comando abaixo: {{{ sudo apt-get install libsvn-java }}} Quando o pacote tiver sido instalado, deve-se editar o arquivo eclipse.ini e adicionar a seguinte linha logo após {{{-vmargs}}} {{{ -Djava.library.path=/usr/lib/jni }}} === Plugins do Firefox === Os seguintes plugins devem ser instalados para facilitar o desenvolvimento de testes automatizados utilizando o navegador Firefox: - [https://addons.mozilla.org/services/install.php?addon_id=1843&src=external-getfirebug/ Firebug 1.6.2] - [https://addons.mozilla.org/en-US/firefox/addon/web-developer/ Web Developer 1.1.9] - [https://addons.mozilla.org/en-US/firefox/addon/regular-expressions-tester/ Regular Expressions Tester 3.2.11] - [https://addons.mozilla.org/en-US/firefox/addon/dom-inspector-6622/ DOM Inspector 2.0.8] - [https://addons.mozilla.org/en-US/firefox/addon/xpather/ XPather 1.4.5] - [https://addons.mozilla.org/en-US/firefox/addon/colorzilla/ ColorZilla 2.2.2] - [http://release.seleniumhq.org/selenium-ide/1.0.10/selenium-ide-1.0.10.xpi/ Selenium IDE-1.0.10] === Baixando o Código Fonte === Criar um novo projeto no Eclipse (File->New->Project...): [[Image(eclip1.png,450px)]] Criar uma nova localização do repositório: [[Image(eclip2.png,450px)]] Entrar com a localização do repositório da comunidade: [[Image(eclip3.png,450px)]] Selecionar a pasta que contém o projeto com os testes automatizados: [[Image(eclip4.png,450px)]] [[Image(eclip5.png,450px)]] [[Image(eclip6.png,450px)]] Após clicar em Finish, o Eclipse deverá se conectar ao repositório da comunidade para baixar automaticamente a revisão mais recente do código. O projeto Expresso Automation2.0 será criado automaticamente e estará pronto para o desenvolvimento. == Testando o Ambiente == === Ajustando as Configurações === O primeiro passo antes de tentar rodar um caso de teste para verificar se o ambiente de desenvolvimento foi corretamente configurado é alterar o arquivo {{{config.properties}}} que se encontra no pacote {{{org.expressolivre.cte.common}}}. Deve-se entrar com a URL do Expresso dedicado aos testes automatizados, bem como o usuário e senha. Exemplo: {{{ url=https://cte.serpro.gov.br user=joao.silva passwd=s3nh4 }}} Além disso, ainda no mesmo arquivo, deve-se determinar qual a configuração de preferências será utilizada para rodar os testes: {{{ config.email=email.preferences_cte.properties }}} Os arquivos de configuração das preferências dos módulos também se encontram em {{{org.expressolivre.cte.common}}}. Ainda em {{{config.properties}}} tem parâmetros adicionais que devem ser editados para o correto funcionamento dos testes automatizados. São eles: {{{ # Email que será utilizado para receber as mensagens enviadas pelos casos de teste email.teste.1=teste.cte@cte.serpro.gov.br # Email que será utilizado para receber as mensagens enviadas pelos casos de teste de cópia, cópia oculta email.teste.2=teste2.cte@cte.serpro.gov.br # Email que será utilizado para receber as mensagens enviadas pelos casos de teste de cópia, cópia oculta email.teste.3=teste3.cte@cte.serpro.gov.br # Email que será utilizado para receber as mensagens enviadas pelos casos de teste de para envio de múltiplos destinatários email.teste.multiplos=teste2.cte@cte.serpro.gov.br, teste3.cte@cte.serpro.gov.br # Arquivo utilizado pelo caso de teste enviar com anexo. O arquivo deve existir na máquina que está rodando os casos de teste automatizados anexo.1=/home/luiz/Desktop/arquivo.txt # Arquivo utilizado pelo caso de teste enviar com múltiplos anexos. O arquivo deve existir na máquina que está rodando os casos de teste automatizados anexo.2=/home/luiz/Desktop/arquivo2.txt }}} === Executando um Caso de Teste === Para rodar um caso de teste automatizado após ter feito o ajuste dos arquivos de configurações, basta escolher a classe que implementa o caso de teste e rodar com o TestNG. Exemplo: [[Image(autoemail.png,450px)]] Se tudo estiver certo, o teste será executado com as configurações informadas. == Referências == - [http://testng.org/ TestNG] - [http://maven.apache.org/ Maven] - [http://seleniumhq.org/ Selenium] - [http://nelz.net/2009/07/30/maven-testng-and-seleniumrc/ Maven, TestNG and Selenium] - [http://robfletcher.github.com/grails-selenium-rc/docs/manual/guide/4.%20Using%20Page%20Objects.html/ Using Page Objects] - [http://code.google.com/p/selenium/wiki/PageObjects Page Objects] ---- ''Última atualização: 25-Jul-2011''