Python 자동화 테스트 PO 모델 패 키 징 과정 상세 설명
장점:재사 용 가능,업무 와 대상 분리,코드 구조 뚜렷,코드 유지보수 편리
핵심 요소
1.PO 모드 에서 패 키 징 을 분리 하여 하나의 BasePage 류 로 통합 합 니 다.이 기본 클래스 는 webdriver 인 스 턴 스 만 실현 하 는 속성 을 가 져 야 합 니 다.
2.모든 페이지 는 BasePage 를 계승 하고 driver 를 통 해 이 페이지 의 요 소 를 관리 하 며 page 의 조작 을 하나의 방법 으로 패키지 합 니 다.
3.TestCase 는 unittest.Testcase 류 를 계승 하고 page 류 에 의존 하여 해당 하 는 테스트 절 차 를 실현 합 니 다.
PO 는 바 이 두 페이지 에 들 어가 데 이 터 를 입력 한 후 다음 페이지 로 들 어 갑 니 다.
조직 코드
1:BasePage 구현
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains #
class BasePage():
'''
BasePage 。
driver,find_element
'''
# BasePage , __init__ ,
def __init__(self,driver,url):
self.driver = driver
self.base_url = url
#
def get(self):
self.driver.get(self.base_url)
# ,
def get_element(self,*locator):
return self.driver.find_element(*locator)
#
def left_click(self,*locator):
ActionChains(self.driver).click(self.get_element(*locator)).perform()
#
def send_text(self,text,*locator):
self.driver.find_element(*locator).send_keys(text)
#
def clear_text(self, *locator):
self.driver.find_element(*locator).clear()
#
def switch_iframe(self,*locator):
self.driver.switch_to.frame(self.driver.find_element(*locator))
#
def switch_window(self,n):
self.driver.switch_to.window(self.driver.window_handles[n])
2:Search Page 구현
from selenium.webdriver.common.by import By
from base.base_page import BasePage
class SearchOne(BasePage):
def __init__(self,driver,url):
BasePage.__init__(self,driver,url)
#
def open_baidu(self):
self.get()
#
def input_search_content(self,text):
self.send_text(text,By.ID,"kw")
#
def click_baidu_search(self):
self.left_click(By.ID, "su")
def click_open_hao(self):
self.left_click(By.XPATH,".//*[@id='1']/h3/a[1]")
3:테스트 케이스 구현
import unittest
from selenium import webdriver
from page.page_one import SearchOne
from page.page_two import SearchTwo
class BaiBu(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
cls.driver = webdriver.Firefox()
cls.driver.implicitly_wait(10)
def test001(self):
url="http://www.baidu.com"
s = SearchOne(self.driver,url)
s.open_baidu()
s.input_search_content("123")
s.click_baidu_search()
s.click_open_hao()
self.driver.switch_to.window(self.driver.window_handles[1])
def test002(self):
s=SearchTwo(self.driver,"")
s.open_baidu_map()
def tearDown(self) -> None:
# self.driver.quit()
pass
if __name__ == '__main__':
unittest.main()
PO 모드 의 장점1:PO 는 업무 절차 와 페이지 요소 작업 이 분 리 된 모델 을 제공 하여 테스트 코드 를 더욱 선명 하 게 만 들 었 다.
2:페이지 대상 과 사례 를 분리 하여 우리 가 더 좋 은 재 활용 대상 을 만 듭 니 다.
3:재 활용 가능 한 페이지 방법 코드 가 더욱 최적화 된다.
4:더욱 효과 적 인 명령 방식 은 우리 로 하여 금 방법 이 조작 하 는 UI 요 소 를 더욱 명확 하 게 알 게 한다.
이상 은 Python 자동화 테스트 PO 모델 패키지 의 상세 한 내용 입 니 다.Python 자동화 테스트 PO 모델 에 관 한 자 료 는 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.