Testing

파이썬 Selenium, unittest framework로 테스트 자동화하기

알로그 2020. 1. 13. 08:10
반응형

Selenium, Unittest framework

 

Selenium을 이용하여 테스트를 자동화하는 방법은 앞서 포스팅한 글정도면 충분하다.

2019.12.29 - [Testing] - Selenium으로 테스트 자동화하기

 

Selenium으로 테스트 자동화하기

Selenium 웹 기반 솔루션을 만들고 있는데, 이를 테스트 자동화하기 위해 Selenium을 사용했다. 우선 Selenium이 무엇인지부터 알아보자. Selenium : Selenium is a portable framework for testing web appl..

hungc.tistory.com

 

 

html tag를 식별한 다음 Selenium API를 호출하는 방법이 전부이기 때문이다.

그리고 Unittest 프레임워크와 함께 활용하면 된다.

 

본인은 unittest 프레임워크를 아래와 같은 방법으로 작성하는데 참고하면 좋을 것 같다.

아래 프레임워크에서 selenium을 이용하여 테스트케이스를 작성하는 편이다.

import unittest
from selenium import webdriver

class ABCTest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
    	# 해당 클래스가 실행될 때마다 동작해야 하는 함수
        # driver 셋팅, 브라우저 오픈 등
        cls.driver = webdriver.Chrome(executable_path='드라이버 패스', options='드라이버 옵션')
        cls.driver.get('URL 주소')
        
    @classmethod
    def tearDownClass(cls):
    	# 해당 클래스가 종료될 때마다 동작해야 하는 함수
        # driver 종료 등
        cls.driver.quit()
        
    def setUp(self):
    	# 각 테스트케이스가 실행되기 전에 동작해야 하는 함수
        # 로그인 등
        self.driver.find_element_by_id('태그이름').click()
        
    def tearDown(self):
    	# 각 테스트케이스가 종료될 때 동작해야 하는 함수
        # 로그아웃 등      
        
    def test_case1(self):
    	# ABC Test의 테스트케이스 함수
    	
    def test_case2(self):
    	# ABC Test의 테스트케이스 함수
    
    
def ABCTestSuite():
    # TestSuite로 활용하기 위한 함수
    suite = unittest.TestSuite()
    
    suite.addTest(ABCTest('test_case1'))
    suite.addTest(ABCTest('test_case2'))
    
    return suite
    
    
if __name__ == '__main__' :
    runner = xmlrunner.XMLTestRunner(output='test_result'
    runner.run(ABCTestSuite())

 

 

Selenium Tips) 

1. 파일을 import 하는 방법

import selenium

# 클래스 내에서 사용한다고 가정
self.driver.find_element_by_id('태그 아이디입력').send_keys('파일명 입력')

 

2. Dropdown으로부터 값 선택하기

from selenium.webdriver.support.ui import Select

# 클래스 내에서 사용한다고 가정
select = Select(self.driver.find_element_by_id('태그 아이디 입력')
select.selct_by_index(인덱스숫자 입력)

 

3. Alert 다루기

import selenium

# 클래스 내에서 사용한다고 가정
self.driver.switch_to_alert().accept()

 

반응형