UI自動化測試中的PO模式
阿新 • • 發佈:2022-04-02
Page Object(簡稱PO模式)
在ui自動化測試中,通常分為這幾步:
- 編寫用例
- 元素定位
- 操作定位的元素(例如:send_keys() click())
- 執行用例
假設:
case01:去百度搜索籃球
def search_basketball(self):
self.dr.get("https://www.baidu.com")
self.dr.find_element(By.ID, "kw").send_keys("籃球")
self.dr.find_element(By.ID, "su").click()
case02:去百度搜索足球
def search_football(self): self.dr.get("https://www.baidu.com") self.dr.find_element(By.ID, "kw").send_keys("足球") self.dr.find_element(By.ID, "su").click()
case03:去百度搜索排球
def search_volleyball(self):
self.dr.get("https://www.baidu.com")
self.dr.find_element(By.ID, "kw").send_keys("排球")
self.dr.find_element(By.ID, "su").click()
這時候我們會發現,在這三條用例中,我們分別進行了三次定位和操作。假設我們有100條case,在某一次的迭代中我們的定位方式失效的話,那我們就要分別修改100次(當然我知道pycharm中有替換這一說);總而言之,這種寫法會增加我們的維護成本,程式碼也會顯得過於臃腫。
Page Object的概念:把元素定位與元素操作進行分離。當元素髮生變化我們只需去維護元素定位,在執行用例的時候,也不需要去關心元素是如何定位的
BasePage也就相當於是我們的基本頁面,相當於封裝了web的頭和體
Page頁相當於所有頁面的管理者,主要用於拿到具體的某個頁面 eg:Page01、Page02、Page03、PageN
- Page01:獲取其裡面的元件,進行元素定位(Page02、Page03同理)
component庫:主要返回各個元件中所要定位的元素,並將該模組匯入所屬的page頁中
TestCase:將封裝好的元素進行拼裝,在這一層進行操作
這也就是po設計模式的分層思想
結語
page object是UI自動化測試專案開發實踐的最佳模式之一,介面互動清晰,貼合測試用例的實現性,也更便於後期的維護。
感謝韓老師 thx~