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注入的方式來進行界面元素操作!