一、什麼是PO模式?
PO是Page Object的縮寫,PO模式是自動化測試項目開發實踐的最佳設計模式之一。
核心思想是通過對界面元素的封裝減少冗餘代碼,同時在後期維護中,若元素定位發生變化, 只
需要調整頁面元素封裝的代碼,提高測試用例的可維護性、可讀性。
二、PO模式主要分爲三頁:
以下是我做的百度登錄的頁面:
Base(對象庫層): 存放與對網頁的一些基礎操作並進行封裝Base頁適用於整個項目
Page(操作層): 通過Base頁,添加定位元素,將Base頁封裝的方法拿來調用,每一個模塊應有一個Page頁,Page頁之間不通用(比如登錄的page不適用於購物車的page一樣)
Case(業務層): 用例頁。通過Page頁調用方法來實現用例。
登錄用例:
運行用例:
運行所有代碼時,不要將他的path放到unittest運行框架中去,直接右擊run即可 ,執行單個unittest框架的測試用例還是要將它放到unittest運行框架中
PS: 我之前就喫過這個虧QAQ
以上是代碼,接下來說下我對Page Object設計模式的理解:
1、首先,我們要將所有的基礎操作放入base頁中,用於page頁中的調用
2、page頁中要調用base頁,這樣能夠有效的提高代碼的複用性,重用性很高,我們只需要將具體的定位元素裝入即可,需要注意的是,我們在page頁內寫入的越多,那麼我們在執行自動化測試腳本的時候就會更加的輕鬆。
比如說,我已經定位到了一個元素,並要對其進行操作時,我們可以再用其他的定位方式獲取一次,這樣在第一次獲取不到具體的元素值時,可以有效的獲取到第二個元素值
如果說在page頁中,缺少我們想要用到的base頁的公用代碼,那麼可以回到base頁補充,base頁與page頁大致相同,都是補充的越全,那麼我們在做自動化測試時就會省時省力,提高效率
3、case頁中我們只需要將page頁中代碼進行調用就可以
最後,如果有需要,也可以將運行結果生成的測試報告進行單獨存放:
最後,如果定位元素進行了更替,那麼我們只需要在page頁內將定位元素修改即可,不得不說,這個模式,深得我的喜愛~~~
自動化測試羣:762141168
歡迎各位自動化測試、接口測試、移動端測試以及相關的測試好友加入
我,在這裏等你,共同進步,GO GO!