Testes com Selenium
Dia desses deparei-me com uma configuração de servidor que poderia acabar impactando em algumas funcionalidades de um site. Começei então a procurar alguma maneira de testar uma aplicação Web simulando o comportamento do usuário em um browser, e encontrei o Selenium. É um projeto bastante interessante, multiplataforma, com o intuito de automatizar navegadores. Como hoje estou trabalhando quase sempre no contexto da administração de sistemas, Python é a melhor alternativa para trabalhar com este tipo de teste.
Instalação
Estando em um Fedora 16, a instalação fica bastante simplificada, porém não tem as chamadas padrão (conforme documentação do selenium) para inicialização do server. Primeiro passo é instalar o selenium. Pra isso, num terminal, entre com:
sudo pip-python install selenium
Depois é interessante instalar o pacote selenose, para construir os testes no lado cliente. O nose-notify vale para integrar os resultados e com o sistema de notificações do Gnome.
sudo pip-python install selenose, nose-notify
Desenvolvimento dos Testes
Agora, basta começar a construir os testes puramente em python. Para mostrar um “Hello World” de exemplo, segue (salve com o nome webTest.py):
#!/usr/bin/python
import nose
import unittest
from selenium import webdriver
class TestCase(unittest.TestCase):
def test(self):
driver = webdriver.Remote(desired_capabilities=webdriver.DesiredCapabilities.FIREFOX)
try:
driver.get('http://www.google.com')
print "Tests Run"
finally:
driver.quit()
if __name__ == '__main__':
nose.main()
Execução
Para executar os testes, em um terminal, execute selenium-server e depois, execute o seu arquivo de teste com o nose.
selenium-server nosetests webTest.py
O resultado deve ser como se segue no terminal e o seu Firefox deve abrir e chamar o site do google.
[fchicout@fchicout-pc ~]$ nosetests webTest.py . ---------------------------------------------------------------------- Ran 1 test in 9.666s OK