Python自动化测试之PO模式

2022-08-22 11:45:45

1.什么是PO模式
PO模式就是Page Object的缩写,即页面对象。PO模式的目的为页面对象与测试代码的分离,使得自动化测试代码可以快速构建。当自动化测试以页面为单位时,将页面中的控件抽取出来然后封装成对象,并定义每个控件的操作方法,那么当页面发生改变时修改测试代码将很方便。
2.PO模式
传统的PO模式,是将页面对象和测试代码分离,以页面为单位为每个页面创建一个页面对象。接下来我们以百度首页为例,首先需要创建百度主页页面对象文件,该文件用于封装百度主要页面对象以及操作页面对象的各类方法,代码如下所示:

# encoding = utf-8from selenium.webdriver.common.byimport Byfrom timeimport sleepclassPage(object):"""基础类,继承页面对象类"""
    login_url="https://www.baidu.com""""初始化函数,定义timeout/driver/base_url"""def__init__(self, driver, base_url=login_url):
        self.base_url= base_url
        self.driver= driver
        self.timeout=30"""定义目标页面"""deftarget_page(self):return self.driver.current_url== self.base_url"""定义打开网页的函数"""defopen(self):
        url= self.base_url
        self.driver.get(url)print(self.driver.current_url)"""定义获取元素基础方法"""deffind_element(self,*loc):return self.driver.find_element(*loc)classSearchPage(Page):"""百度首页,页面对象类"""
    url='/'
    input_loc=(By.NAME,"wd")
    search_button_loc=(By.ID,"su")"""每个页面封装对应方法"""definput_search_string(self, search_string):
        self.find_element(*self.input_loc).send_Keys(search_string)#输入要检索的字符串defclick_search_button(self):
        self.find_element(*self.search_button_loc).click()#点击百度按钮#定义检索字符串函数defsearch_string(driver, string):
    search_Page= SearchPage(driver)
    search_Page.open()
    search_Page.input_search_string(string)
    sleep(3)
    search_Page.click_search_button()

接下来,编写测试代码,代码如下所示:

from seleniumimport  webdriverfrom PageObjectimport Baidu_Main_Pagefrom timeimport sleepimport unittestclassSearch_Page(unittest.TestSuite):defsetUp(self):
        self.chrome_driver=webdriver.Chrome()
        self.string="dangjunquan"deftest_search_dangjunquan(self):try:"""调用封装好的search_string()"""
            Baidu_Main_Page.search_string(self.chrome_driver,self.string)
            sleep(3)
            self.assertTrue("dangjunquan"in self.chrome_driver.page_source)except AssertionErroras  e:raise edeftearDown(self):
        self.chrome_driver.quit()if __name__=="__main__":
    unittest.main()

3.执行测试结果
运行测试代码后,结果如下图所示:

C:\PO\venv\Scripts\python.exe C:/PO/TestScript/Test_Baidu_Main_Page.py----------------------------------------------------------------------
Ran0 testsin0.000s

OK

Process finishedwith exit code0
  • 作者:云想衣裳花想容~
  • 原文链接:https://blog.csdn.net/dangjunquan/article/details/109309814
    更新时间:2022-08-22 11:45:45