don't stop believing

selenium과 Unittest 같이 사용하기 본문

Testing Automation/Selenium

selenium과 Unittest 같이 사용하기

Tongchun 2018. 3. 28. 11:13

selenium과 unittest를 함께 사용하는 기본 사용법을 설명하겠습니다.

우선 unittest-sample.py라고 파일을 만들고 아래 코드를 저장합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import unittest, time, re
class NGleTestCase(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome('C:/Users/jake/AppData/Local/Programs/Python/chromedriver.exe')
self.driver.implicitly_wait(30)
def test_pageloading(self):
driver = self.driver
driver.get("http://www.google.com")
search = driver.find_element_by_name("q")
search.send_keys("www.ngle.co.kr")
search.submit()
driver.find_element_by_partial_link_text('THE BEST BUSINESS PLAN').click()
ngle_title = driver.title
value = " NGLE – THE BEST BUSINESS PLAN"
self.assertEqual(ngle_title, value)
time.sleep(2)
driver.save_screenshot('screenie.png')
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


class NGleTestCase(unittest.TestCase):
class 이름은 테스트 케이스에 따라 자유롭제 지정할 수 있습니다. unittest를 사용하려면 class 이름 뒤에 (unittest.TestCase): 라고 붙여줘야 합니다.


def setUp(self):

class가 시작하면 반드시 한번 수행하게 됩니다. 따라서 webdriver를 지정하거나 webdriver에 대한 옵션값을 설정할 수 있습니다. 또한 실제 테스트 함수에서 사용할 전역변수 등도 설정할 수 있습니다.


def test_pageloading(self):

실제 테스트에 사용되는 코드 입니다. 함수의 이름 앞에는 test_를 붙여야 합니다.


def tearDown(self):

class가 종료하기 전 한번 수행하게 됩니다.


if __name__ == "__main__":

    unittest.main()

앞서 작성한 unittest class를 실행합니다.


이제 python으로 실행해 봅니다. -v 옵션도 추가해 줍니다.

1
2
3
4
5
6
7
8
9
10
11
D:\Test-Unittest>python unittest-sample.py -v
test_pageloading (__main__.NGleTestCase) ...
DevTools listening on ws://127.0.0.1:12122/devtools/browser/e233ea43-43a1-4590-920a-27aa59a7172d
KLIB_SelfTest return : KLR_OK
ok
----------------------------------------------------------------------
Ran 1 test in 15.832s
OK
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX