Web自動化測試框架-PO模式


Web自動化測試框架(WebTestFramework)是基於Selenium框架且采用PageObject設計模式進行二次開發形成的框架。 
一、適用范圍:傳統Web功能自動化測試、H5功能自動化測試。 
二、兼容性:建議使用火狐或谷歌瀏覽器,因為Selenium與其兼容性最好。 
三、框架改進亮點(比Selenium框架優的地方):

1、 采用PageObject設計模式,將某個頁面的所有元素(包含控件)屬性及元素操作封裝在1個Class里面,如下所示: 
這里寫圖片描述

這樣做的目的是為了解耦,即測試代碼與被測頁面對象代碼分離,后面若頁面元素發生了變化,只需要修改被測頁面對象代碼(即上述Class文件)而不需要修改測試代碼,這樣大大減小了后期因頁面變化導致腳本或用例維護的成本。 
下面展示的測試代碼片段中未用到任何頁面元素對象: 
這里寫圖片描述

2、 采用XPath策略來尋找頁面元素,而不建議使用Name、Link等方式來尋找。因為當頁面元素的Name、Link發生了變化,測試代碼(測試用例)就無法執行下去或執行過程中不穩定。若采用XPath,只要頁面元素所在區域未發生變化,而Name、Link等發生了改變,測試代碼基本不會受影響,代碼如下所示: 
這里寫圖片描述

聲明:一般XPath是基於CSS樣式來做的,但CSS-Style改變的需求或可能性不是很大,換句話說,這樣的變動周期較長;若想“以不變應萬變”, 使用DOM元素的ID進行定位,這種方式的好處是不受元素所在位置、以及所應用的樣式的影響。

3.將頁面元素屬性信息與代碼分離,即與被測對象代碼分離,這樣做的目的也是為了進一步降低后續因頁面變化帶來的維護成本,即當頁面發生改變時,只需要修改對應頁面中XML配置文件信息,如下所示: 
這里寫圖片描述

個人心得: 
若希望基於Selenium框架二次開發的框架更加易於擴展,可以盡量少用Selenium提供的API,可以使用大量JS注入的方式來進行界面元素操作!


免責聲明!

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



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