Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RSS iMasters

[Resolvido] Executando seu primeiro teste Selenium sem IDE

Recommended Posts

43295.png

 

Até agora, eu só escrevi sobre usar o Selenium com o útil add-on do Firefox, que fornece a capacidade de simplesmente gravar e executar. Existem limitações em usar somente o Selenium IDE, e somente algumas delas são resolvidas com o uso de plugins. Provavelmente chegará um tempo em que você somente precisa migrar do Selenium IDE para algo mais poderoso.

 

Há pouco tempo, o único próximo passo disponível do Selenium IDE era o Selenium RC (Remote Control). Ele é um servidor Java para o qual você consegue enviar comandos em várias linguagens client diferentes, que são traduzidas e então utilizadas para manipular o navegador. Existem duas vantagens principais nisso: você tem total poder sobre a linguagem de programação e você pode executar testes em outros navegadores além do Firefox.

 

Mais recentemente, uma alternativa de próximo passo é o WebDriver. Isso está incluído no Selenium 2, e apesar de as mesmas vantagens existirem no RC, há muito mais.

 

Duas vantagens do WebDriver são: não existe mais a dependência de um servidor Java, e a integração com o browser é muito melhor. Em vez de controlar exclusivamente o conteúdo do navegador via JavaScript, cada navegador agora tem seu próprio driver. O que é ainda melhor é que vários vendedores de navegadores estão bastante envolvidos nos drivers. Ah, e existe até suporte para navegadores em dispositivos móveis!

 

O Selenium RC agora é considerado por algumas pessoas como legado e, apesar de o projeto Selenium ter o objetivo de continuar a suportar os usuários, existe de pouco a nenhum desenvolvimento ativo nele. Ambos RC e WebDriver compartilham o mesmo core, então as melhorias no WebDriver provavelmente beneficiarão os usuários do Selenium RC, mas o foco de desenvolvimento claramente está no WebDriver.

 

Então, em vez de somente falar sobre o Selenium RC, irei mostrar como ir direto do Selenium IDE para o WebDriver. Para os objetivos dessa demonstração, irei usar a biblioteca de client do Python. Eu costumava escrever todos meus testes em Java, mas tenho que confessar que desde que comecei a usar o Pyhton eu a considero uma linguagem muito mais acessível para automação de testes, especialmente se você for novo em linguagens de programação.

 

Primeiramente, certifique-se de que você tem a versão 1.1.0 do Selenium IDE. Ela introduziu os formatadores WebDriver que iremos usar. Em seguida, você precisa habilitar os recursos experimentais para usar os formatadores. Isso acontece devido à quantidade de bugs que pode fazer com que você perca seus casos de teste, ao ficar mudando de formatos. Ele foi desabilitado para prevenir que isso acontecesse sem que o usuário fosse pelo menos avisado, e esperançosamente será resolvido logo. Para habilitá-lo, clique em ?Options? > ?Options?? e marque ?Enable experimental features?. Você pode marcar opcionalmente ?Disable format change warning messages? se você não quiser ser lembrado do risco toda vez que você mudar os formatos.

 

Exporte para Python

Em seguida, abra ou crie um teste simples no IDE com poucos comandos e verificações. Mude o formato no menu ?Options? para ?Python 2 (WebDriver)?. A aba fonte será selecionada e se você olhar de perto verá que as mesmas confirmações aparecerão na fonte, apesar de elas parecem bem diferentes da visualização de tabelas. Salve o caso de teste usando  ?File? > ?Save Test Case As?? e dê o nome do arquivo de mytest.py.

43297.png

 

Instale o Python

Para o próximo passo, você precisará instalar o Python 2 , que você pode conseguir em http://www.python.org/getit/. Você também precisará instalar as setuptools a partir de http://pypi.python.org/pypi/setuptools. Uma vez que você tenha feito isso, execute o seguinte para instalar a biblioteca client do Selenium python:

 

easy_install pip

pip install selenium

Execute o teste Python

Agora que você tem tudo de que precisa, você deve ser capaz de executar o teste. Execute o seguinte comando, certificando-se de que tenha a localização correta do arquivo mytest.py:

python mytest.py

Se tudo correr bem, você deve ver o Firefox abrir e rodar seu teste, e então os resultados irão ser exibidos no seu console. Mas existem alguns problemas que podem ocorrer?

 

Troubleshooting

Não consigo encontrar o binário do Firefox

 

O WebDriver não sabe onde o Firefox está instalado, então ele tentará alguns palpites baseado nos padrões. Se você o instalou em um local alternativo, então você precisa especificá-lo no seu arquivo mytest.py. Adicione o seguinte no topo do arquivo junto com os outros arquivos importados:

 

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

Então, mude a linha onde a variável self.driver está designada a incluir o caminho para o Firefox:

self.driver = webdriver.Firefox(firefox_binary=FirefoxBinary("C:\\Program Files\\Mozilla Firefox 6\\firefox.exe"))

Não consigo abrir a URL

 

Se os sites que você está abrindo são relativos, então você precisa incluir a URL base. Por exemplo, mude qualquer ocorrência no seguinte:

driver.get("/")

Para incluir a URL base, usando formatação de string:

 

driver.get("%s/" % self.base_url)

Unicode

 

Se você estiver tentando verificar textos que incluam caracteres Unicode, então você deve precisar modificar as strings. Por exemplo:

self.assertEqual("QMO ? quality.mozilla.org | The Home of Mozilla QA", driver.title)

Deve se tornar:

self.assertEqual(u"QMO \u2013 quality.mozilla.org | The Home of Mozilla QA", driver.title)

Note o ?u? que antecede a string. Se você não tiver certeza, use as mensagens de falha para esclarecimento sobre qual texto atual que está sendo retornado pelo navegador.

 

Verificações:

 

O Selenium IDE tem um recurso raro para testar frameworks, que são as verificações (ou confirmações leves). Você verá que se você formatar qualquer verificação como uma linguagem client, então normalmente haverá uma implementação muito mais verbosa. Por exemplo, o Python cria uma lista para coletar as confirmações falhas e confere se a lista ao fim do teste está vazia. Você pode considerar usar apenas para confirmações fortes e para testes menos verbosos.

 

Conclusão

Infelizmente, os formatadores não são balas de prata. Eu pessoalmente prefiro escrever meus testes diretamente na linguagem client, no entanto, se você já tiver uma suíte de testes Selenium IDE, então os formatadores são a maneira mais rápida de migrar para o myWebDriver. Os formatadores são configuráveis, e também vale a pena notar que os formatadores do WebDriver ainda são bastante novos e provavelmente veremos melhorias nos próximos lançamentos do Selenium IDE. Se você quiser ver alguns testes do WebDriver escritos em Python, então eu recomendo os testes para os projetos  Mozilla: QMO, Wiki, FlightDeck.

 

Se você tem alguma pergunta, você achará o grupo de usuários do Selenium útil.

 

Se você tiver algum problema com o Selenium, por favor verifique se ele já foi relatado no rastreador oficial de problemas antes de inserir um novo relatório com o máximo de informação possível. 

?

Texto original disponível em http://blog.softwaretestingclub.com/2011/10/running-your-first-selenium-test-without-the-ide/

 

 

 

 

 

 

 

 

 

http://imasters.com.br/artigo/22986/desenvolvimento/executando-seu-primeiro-teste-selenium-sem-ide

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.