Django 1.4でSeleniumを使ったwebページのテスト
Django1.4でLiveServerTestCaseが追加されました。
https://docs.djangoproject.com/en/dev/releases/1.4/#support-for-in-browser-testing-frameworks
Seleniumを使ったブラウザテストを可能にするものです。
どんな感じが掴んでみようと簡単なサンプルを動かしてみました。
ログイン前とログイン後でそれぞれページのtitleを検証するだけのテストです。
seleniumのインストールが必要です
pip install selenium
以下、動かすとfirefoxが起動して自動的にログインを行います。
いきなりfirefoxが起動するのが最初は面白かったです。
from django.test import LiveServerTestCase from selenium.webdriver.firefox.webdriver import WebDriver class BrowserTest(LiveServerTestCase): @classmethod def setUpClass(cls): cls.selenium = WebDriver() super(BrowserTest, cls).setUpClass() @classmethod def tearDownClass(cls): cls.selenium.quit() super(BrowserTest, cls).tearDownClass() def test_login(self): # ログインページ遷移 self.selenium.get('%s%s' % (self.live_server_url, '/login/')) # title self.assertEquals(u'ログイン', self.selenium.title) # ログイン username_input = self.selenium.find_element_by_name("username") username_input.send_keys('yuhei') password_input = self.selenium.find_element_by_name("password") password_input.send_keys('password') self.selenium.find_element_by_xpath('//button[@value="login"]').click() # title self.assertEquals(u'トップページ', self.selenium.title)