全稱:page object model 簡稱:POM/POhtml
PO模式最核心的思想是分層,實現鬆耦合!實現腳本重複使用,實現腳本易維護性!java
主要分三層:python
1.基礎層BasePage:封裝一些最基礎的selenium的原生的api方法,元素定位,框架跳轉等。mysql
2.PO層:元素定位、得到元素對象,頁面動做git
3.測試用例層:業務邏輯,數據驅動!github
三者的關係:PO層繼承繼承層,測試用例層調用PO層!面試
說到自動化框架,我相信不少人應該都聽過這個詞,可是不知其究竟是個什麼東西,爲何要用自動化框架。有不少人堆自動化框架都是懵懵懂懂,就跟談戀愛同樣,朦朧美!sql
一個好的自動化測試框架是可讓不那麼懂技術的人也能夠寫自動化測試腳本的,數據庫
一個好的自動化測試框架能夠減小自動化測試中腳本管理和維護當中的人力物力和財力。api
其實自動化框架的一個最大的意義在於可重用性。由於在框架裏,你能夠實現不少的通用功能來簡化整個腳本的開發過程。而且生成美觀的測試報告。
自動化軟件測試交流!!!羣:642830685,領取最新軟件測試資料大廠面試和Python自動化學習資料!一塊兒學習交流
非PO模式面向過程的線性腳本POM把頁面元素定位和業務操做流程分開。實現鬆耦合。複用性差UI元素的改變不須要修改業務邏輯代碼。只須要找到對應的PO頁修改定位便可,數據代碼分離
維護性差PO能使咱們的測試代碼提升代碼的可讀性,高複用性,可維護性。
非PO模式舉個栗子:有以下百度搜索腳本:
如何把上述栗子改爲PO模式呢?
一、基礎層BasePage
二、PO層:封裝百度頁面元素定位,元素對象以及頁面操做
三、測試用例層:業務邏輯和數據驅動
從上面的PO案例:讓咱們更加了解清晰PO的優勢在於:
1.POM把頁面元素定位和業務操做流程分開。實現鬆耦合。
2.UI元素的改變不須要修改業務邏輯代碼。只須要找到對應的PO頁修改定位便可,數據代碼分離
3.PO能使咱們的測試代碼提升代碼的可讀性,高複用性,可維護性。
自動化框架=po+各類封裝(日誌處理封裝,全局配置文件的封裝,數據庫鏈接的封裝,excel操做封裝,數據驅動封裝等)
其實想要勝任UI自動化測試崗位還須要掌握如下內容:
1.python或java
2.selenium的API
3.unittest/pytest單元測試框架
4.htmltestrunner/allure測試報告
5.數據驅動dtt(excel,yaml,mysql)或pytest中的fixtrue
6.關鍵字驅動:公共類,方法封裝,隨機數,數據庫鏈接,全局登陸
7.全局配置文件處理
8.日誌處理
9.斷言
10.第三方庫
11.git和github或碼雲集成開發!
12.jenkins持續集成
若是您以爲對您有幫助,請點贊,收藏,分享三連!您的支持是筆者最大的動力!