PO模式的好處就是元素定位信息以頁面為單位提取,方便管理,提高後期的維護效率。缺點是進行腳本開發時,需求實例化各個頁面的對象,當壹個復雜的業務操作牽扯到多個頁面時,這種方法就顯得有些繁瑣
元素定位分離
1、 元素定位按照頁面區分,分別存儲在不同頁面
2、 存儲的方式為元組(定位方式,定位表達式),每壹個元素定位寫好註釋是哪個元素,方便重復調用例子:input_moile=(By.XPATH,'//input[@name="phone"]')
3、 調用方法:先把元素定位引入需要調用的文件,別名統稱loc
4、 元素定位命名要見文知意
5、 有新增的元素定位繼續在框架內補充即可
頁面對象與測試用例分離
1、 頁面對象按照不同頁面進行存放
2、 頁面對象為對頁面進行的具體操作(執行用例所需要的步驟,獲取斷言的比對信息等),每壹個操作都寫上清晰的註釋以方便調用
3、 需要初始化壹個driver
4、 操作中需要調用元素定位層的元素定位進行元素的各種操作
5、 每個操作的命名要見文知意
註意:要等待元素出現,必要時加入強等待sleep進行等待
調用時要註意格式(元組),WebDriverWait可以直接調用,driver.find_element需要*號將元組解包。
1、 測試用例按照測試的不同模塊分別存放(可以大模塊下面繼續細分),每壹條測試用例都寫上詳細的註釋,對應測試的功能
2、 繼承unittest.TestCase類,需要先引入
3、 測試用例的要素:①前置條件②執行步驟③數據檢查及斷言
4、 用例的前置後置處理函數處理前置後置條件—
5、調用PageObject來完成用例的執行步驟,完成用例執行結果的斷言。
6、執行步驟和斷言方式相同的多個用例,可以只寫壹個用例,用ddt.data來傳入數據依次執行(如登錄的異常用例等),數據來源於TestData分層。
7、多個用例只打開壹次瀏覽器的操作條件:①用例之間不能相互影響②同壹個頁面對象③異常用例在前,正常用例在後。
註:用例的執行順序可以通過用例名字進行控制
數據分離
1、 測試數據按照測試的不同模塊分別存放(可以大模塊下面繼續細分),每壹條數據都寫上詳細的註釋,對應用例
2、 每個模塊下的數據分為公***數據和功能模塊的數據
3、 功能模塊按照測試的功能存放測試數據
4、 數據格式,單條數據使用字典,多條數據使用列表嵌套字典格式,被調用時要用*解包為多個列表
將常用的頁面操作全部集中在此處,與業務無關,加上完善的異常處理,供後續的所有的頁面操作調用。
用於存放測試報告,截圖,日誌等測試過程中輸出的文件。