don't stop believing

selenium과 Unittest 같이 사용하기 본문

Testing Automation/Selenium

selenium과 Unittest 같이 사용하기

Tongchun 2018. 3. 28. 11:13

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

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

# -*- 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()


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 옵션도 추가해 줍니다.

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




Comments