만약 PO 디자인 모델 을 모른다 면, 너 는 자동 화 를 계속 할 수 없 을 것 이다!왜 까지?

12141 단어 Python+selenium
POM 디자인 사상
  • POM 소개
  • POM 우위 에는 어떤 것 이 있 습 니까
  • POM 디자인 모델 을 왜 사 용 했 는 지
  • 어떻게 POM 을 설계 합 니까
  • 사고방식 해석
  • login_page. py 파일
  • common.py
  • TestCase.py
  • 열심히 공부 해서 매일 향상!함께 가입: 90206117, 네가 오 든 안 오 든 나 는 모두 무리 에서 너 를 기다린다
  • 총화
  • POM 프로필
      Page Object Model (POM) 은 '페이지 대상 모델' 로 직역 되 었 다. 이 디자인 모델 은 테스트 를 기다 리 는 모든 페이지 에 페이지 대상 (class) 을 만 들 고 번 거 로 운 포 지 셔 닝 작업 을 이 페이지 대상 에 밀봉 하 며 대외 적 으로 필요 한 조작 인터페이스 만 제공 하 는 것 이 패키지 사상 이다.
    POM 의 장점 은 어떤 것들 이 있 나 요?
  • UI 자동 화 를 프로젝트 에 더욱 일찍 개입 시 키 고 프로젝트 개발 이 끝 난 후에 요소 포 지 셔 닝 의 적합 과 디 버 깅 을 할 수 있 습 니 다
  • POM 은 페이지 요소 포 지 셔 닝 과 업무 수행 절 차 를 분리 하여 테스트 대상 과 테스트 스 크 립 트
  • 를 분리 했다.
  • UI 페이지 요소 가 변경 되면 테스트 스 크 립 트 가 변경 되 지 않 고 페이지 대상 의 일부 코드 만 변경 하면 됩 니 다
  • POM 은 우리 의 테스트 코드 를 가 독성 이 더욱 좋 고 유지 가능성 이 높 으 며 재 활용 성 이 높다
  • .
  • 여러 사람 이 공동으로 개발 스 크 립 트 를 유지 하고 팀워크 에 유리 합 니 다
  • 왜 POM 디자인 모드 를 사용 합 니까?
  • 소수의 자동화 테스트 사례 를 유지 하기 가 쉬 워 보인다.하지만 시간 이 지 날수 록 테스트 세트 는 지속 적 으로 늘 어 날 것 으로 보인다.대본 도 점점 비대 해 질 것 이다.
  • 우리 가 10 페이지, 100 페이지, 심지어 1000 개 를 유지 해 야 한다 면?그리고 페이지 요 소 는 공용 입 니 다.그 페이지 요소 의 모든 변 화 는 우리 의 스 크 립 트 유지 보 수 를 번 거 롭 고 복잡 하 게 만 들 며 시간 이 걸 리 면 실 수 를 하기 쉽다.

  • 어떻게 POM 을 설계 합 니까?
    사고의 방향 을 분석 하 다.
  • login 과 같은 페이지 요 소 를 관리 하 는 파일 이 필요 합 니 다.page.py
  • 공용 조작 방법 을 봉인 한다
  • 마지막 으로 테스트 용례 를 작성 하 는 데 사용 할 파일 이 필요 합 니 다
  • login_page. py 파일
  • 이 파일 은 로그 인 페이지 의 모든 요 소 를 관리 하고 이 요 소 를 조작 하 는 방법
  • #! /usr/bin/python3
    #-*- coding:utf-8 -*-
    
    #@Time    : 2020/8/15 10:57
    #@     :     
    
    '''           ,         '''
    from selenium.webdriver.common.by import By
    
    
    class LoginPage:
        username_input = (By.XPATH,'//*[@id="name"]') #           
        password_input = (By.XPATH,'//*[@id="password"]') #          
        login_button = (By.XPATH,'//*[@id="submit"]') #    
    

    common.py
  • 이 파일 은 공용 작업 방법
  • 을 봉인 하 는 데 사용 된다.
    #! /usr/bin/python3
    #-*- coding:utf-8 -*-
    
    #@Time    : 2020/8/15 10:57
    #@     :     
    from selenium import webdriver
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions  as EC
    from selenium.webdriver.common.by import By
    
    '''          '''
    class InitBrowser():
        '''         '''
    
        def __init__(self):
            self.driver = webdriver.Firefox()  #        
            self.driver.get('https://sso.kuaidi100.com/sso/authorize.do')  #     
    
        def wait_element_visible(self, locate):
    
            ele = WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(locate)) #          
            print('      ')
            return  ele
    
        def click_until_visible(self, locate):
            self.wait_element_visible(locate).click()
    
        def send_keys_until_visible(self, locate, value):
            self.wait_element_visible(locate).send_keys(value)
    

    TestCase.py
  • 이 파일 은 테스트 용례 를 관리 하 는 데 사 용 됩 니 다
  • #! /usr/bin/python3
    #-*- coding:utf-8 -*-
    
    #@Time    : 2020/8/15 10:57
    #@     :     
    
    '''      '''
    import unittest
    from common import InitBrowser
    #   Pages    login_page    LoginPage 
    from Pages.login_page import LoginPage
    
    
    class TestCases(unittest.TestCase, InitBrowser, LoginPage):
         def setUp(self) -> None:
             '''       :     ,     ,     '''
             InitBrowser.__init__(self)
    
         def testcase01(self):
             '''    '''
    
             self.send_keys_until_visible(LoginPage.username_input, "  ")
             self.send_keys_until_visible(LoginPage.password_input, "  ")
             self.click_until_visible(LoginPage.login_button)
    
         def tearDown(self) -> None:
             '''    :     ,       ,      '''
             self.driver.quit()
    
    if __name__=='__main__':
        unittest.main()
    

    열심히 공부 해서 매일 향상 시 켜 라!함께 가입: 90206117, 네가 오 든 안 오 든 나 는 모두 무리 에서 너 를 기다 리 고 있다.
    총결산
  • 로그 인 을 다시 사용 할 때 login 만 수정 하면 됩 니 다.page. py 의 포 지 셔 닝 요소 방법 과 값 만 있 으 면 됩 니 다
  • 이상 의 코드 는 물론 부족 한 부분 이 많 습 니 다. 예 를 들 어 계 정 비밀 번 호 를 제시 하지 않 으 면 파트너 가 스스로 시도 할 수 있 습 니 다
  • 소프트웨어 테스트, 인터페이스 테스트, 자동화 테스트, 지속 적 인 통합, 면접 경험.관심 이 있 으 면 90206117 에 들 어가 면 테스트 자 료 를 비정 기적 으로 공유 할 수 있 습 니 다.기술 도 있 고 업계 동료 들 도 함께 기술 을 교류 할 수 있다.

    좋은 웹페이지 즐겨찾기