PO設計模式 & 原則


PO設計模式總結

  簡介

    為UI頁面寫測試用例時(比如web頁面,移動端頁面),測試用例會存在大量元素和操作細節。

    當UI發生變化時,測試用例也會跟着變化,PageObject很好的解決了這個問題!

    使用UI自動化測試工具時(包括selenium,appium等),如果無統一模式進行規范,隨着用例的增加會變得越來越難以維護

    而PageObject讓自動化腳本井井有序,將page大度維護並封裝細節,可以使testcase更文件,不需要大量的改動

  使用

    具體做法:把元素信息和操作細節封裝到Page類中,在測試用例上調用Page對象

    比如存在一個功能"選取相冊標題",需要為之簡歷函數selectAblumWithTitle(),函數內部是操作細節findElementsWithClass('album')等;

  PageObject的主要原則是提供一個簡單的接口(或者函數),讓調用者在頁面上可以做任何的操作,點擊頁面元素,在輸入框輸入內容等待。

  因此,如果要訪問一個文本字段,page object應該有獲取和返回字符串的方法。page object應該封裝對數據的操作細節,比如查找元素和點擊元素。

  當頁面改動時,應該只改變page類中的內容,不需改變調用它的地方。不需要為每隔UI頁面都創建page類,應該只為頁面中重要的元素創建page類

  page object的目的是通過給頁面建模,congress對應用程序的使用者變得更有意義。

PageObject原則

  簡介

    PageObject的核心思想是六大原則,掌握六大原則才可以進行pageobject實戰,這是精髓所在!

    Selenium官方凝聚出六大原則,而后pageobject使用都將圍繞此進行開展:

      1. 公共的方法代表也買你提供的服務

      2. 不要暴露細節

      3. 不要把斷言和操作細節混用

      4. 方法可以return到新打開的頁面

      5. 不要把整頁的內容都放到PO中

      6. 相同的行為會產生不同的結果,可以封裝不同結果

    具體分析

      原則一:要封裝頁面中的功能或服務,比如點擊頁面元素,可以進入到新的頁面,則可為這個服務封裝方法"進入新頁面"

      原則二:封裝細節,對外只提供方法名(或者接口)

      原則三:封裝的操作細節中不要使用斷言,把斷言放到單獨的模塊中,比如:testcase

      原則四:點擊一個按鈕會開啟新的頁面,可以用return方法便是跳轉,比如return MainPage()表示跳轉到主頁

      原則五:只為頁面中重要的元素進行PO設計,舍棄不重要的內容

      原則六:一個動作可能產生不同結果,比如點擊按鈕后,可能成功,也可能失敗,為兩種結果封裝兩個方法:click_success和click_error
————————————————————————————————————————————————————————————————————


免責聲明!

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



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