PO模式學習筆記


框架:

1.PO模式應用(測試對象和測試用例分離)(寫到簡歷中)

2.引入ddt

3.深入分層:測試數據分離

4.遵循原則:測試用例的獨立性

5.深入分層:元素定位分離

6.框架優化:提取basepage,具備處理異常 日志 截圖功能

7.框架優化:使用pytest單元測試框架

8.Jenkins集成,分布式部署

 

為什么要把業務邏輯從測試邏輯里抽離出來?

-PO模式 PageObject 頁面中封裝成一個對象 ==》

例如:1,DOM document Object Model(將HTML文檔表示成js的對象) document.getElement...獲取內容

2,WebElement==>將html的標簽表示成python的object對象,web_ele.text web_ele.get_attribute()來訪問屬性

3,DOM-->python 的object對象,這就是PO模式的由來

--PageObject==》1.WebElement(元素) 2.元素操作(點擊,拖拽) 均屬於PageObject的組成部分,(就是一個頁面一個文件封裝)

  • PO模式是一種自動化測試設計模式,將業務邏輯和測試邏輯分開,也就是把對象的定位和測試腳本分開,從而提高可維護性。(換個項目只要改寫業務邏輯不用改動測試邏輯)
  • 使業務更清晰
  • 代碼更利於維護
  • 可以復用

 

首頁里面的邏輯封裝到一個頁面 --HomePage

--方法和邏輯封裝到登陸頁面 --LoginPage

投資BidPage,蜂群 UserPage

原理:

將頁面的元素定位和元素行為封裝成一個page類

類的屬性:元素的定位

類的行為:元素的操作

頁面對象和測試用例分離

測試用例:調用頁面所需對象的行為,組成測試用例

好處:

  • 當某個頁面的元素發生變化,只需要修改該頁面對象中的代碼即可,測試用例不需要修改--可維護性
  • 提高代碼重用率,結構清晰,維護代碼更容易
  • 測試用例發生變化時,不需要或只需要修改少數頁面對象代碼即可--復用性

為什么不能用函數封裝?
# 多個不同的函數都公用一個形參,共享的實際參數可以作為一個屬性
# 在類中屬性表示共同特征
# 不利於在多個函數之間共享變量

#類就是這種共享數據的一種形式
---那么以上是可以封裝成一個類的, class LoginPage

 

 

PO模式
PO是Page Object的縮寫,PO模式是自動化測試項目開發實踐的最佳設計模式之一。
核心思想是通過對界面元素的封裝減少冗余代碼,同時在后期維護中,若元素定位發生變化, 只
需要調整頁面元素封裝的代碼,提高測試用例的可維護性、可讀性。
PO模式可以把一個頁面分為三層,對象庫層、操作層、業務層。
對象庫層:封裝定位元素的方法。
操作層:封裝對元素的操作。
業務層:將一個或多個操作組合起來完成一個業務功能。比如登錄:需要輸入帳號、密碼、點
擊登錄三個操作。
2.1 引入PO模式的好處
引入PO模式前
存在大量冗余代碼
11黑馬程序員-軟件測試
業務流程不清晰
后期維護成本大
引入PO模式后
減少冗余代碼
業務代碼和測試代碼被分開,降低耦合性
維護成本降低

 

 

 

 

ddt數據驅動:每個測試數據相互獨立(解決的問題)

用try except可以接受拋出的異常用例,繼續執行后續用例,否則一條用例失敗,后面的用例都無法執行

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM