selenium+java+testNG+pageObject深入理解自動化測試框架
阿新 • • 發佈:2019-01-04
關於selenium+java+testNg的環境配置文章,本文主要講述測試框架的架構實現。
我們知道,搭建一個合理的測試框架能夠將自動化測試做大做大,一個合適的自動化測試框架能夠極大的降低程式碼的數量,便於後續的維護。文章先從測試框架的模型,思想講起,然後將各個部分做實現。
一、框架包結構如下圖
以下依次分析下每個包中的工作
- com.bfm.pageElements:yaml檔案存放頁面要素對應的xpath;
- com.bfm.properties:yaml檔案儲存相關的公共要素,比如iframe,url;
- com.bfm.VO:class類編寫頁面物件,比如LoginPageVO;
- com.bfm.task:class編寫每個頁面中需要的動作;比如loginTask();
- com.bfm.utils:class編寫相關的工具包;
- com.bfm.tests:class編寫相關的測試類;比如loginSucessTest();
- com.bfm.suites:class編寫測試呼叫類;
二、該框架中使用的主要思想
該測試結構中,主要使用的思想有,pageObject面向介面做處理、使用反射機制對介面資料進行傳遞、使用yaml檔案管理介面要素的定位、使用分層機制程式設計。 首先分析一下該框架中的主要類,類結構如下。依次分析下各個類的作用
- loginPageElements.yaml:存放的登入介面所需要的主要要素,以後介面做調整後,只需要調整對應要素的查詢方式,比如,userName對應的name;
- url.yaml:存放相關的訪問地址,比如,登入介面的地址,登入地址調整後,只需要調整該訪問地址即可;
- iframes.yaml:存放iframes的地址,對應操作介面的iframe調整後,調整該檔案中的配件即可;
- yamlFileDirector:相關靜態變數,存放相關yaml檔案存放的物理路徑,以上配置檔案的路徑調整後,修改該檔案的路徑配置即可;
- WebDriverConstruction:更加傳遞的瀏覽器型別,初始化相應的瀏覽器即可;包含fireFox,chrome等;
- pageElementSearch:查詢對應yaml檔案在介面中的要素;
- TreeNodeSearch:用於導航視窗的處理;
- SwitchToWindow:用於切換iframes;
- XmlToJavaVO:轉換xml資料到介面VO物件中,介面資料的傳遞,使用反射機制,處理不同的介面VO;
- XMLReader:讀取xml檔案的類;
- YamlReader:讀取yaml檔案的類;
- ElementOperator:靜態類,包含介面要素需要處理的方法,比如處理,文字框的清空,下拉框的操作等;
- LoginTask:實現登入介面中的功能;比如:登入,重置等;
- loginPageTest:測試類,實現登入成功,登入失敗等;
- loginTestSuite:呼叫不同的測試類一起執行;
三、框架中的層次結構
下面講述一下該框架的層級結構
- 測試資料層:獨立封裝資料;
- 頁面物件層:封裝頁面物件,共頁面任務層做呼叫;
- 頁面任務層:實現各個獨立頁面的操作;
- 測試層:實現頁面測試;
- 測試元件層:實現測試層的管理呼叫;
到這裡就介紹完了我實現的web測試主要思想,後續應該會做進一步的優化。歡迎大家吐槽。框架程式碼:http://download.csdn.net/detail/boer521314/9396376
介面自動化框架:https://github.com/laiqb/AutoUI
相關配置檔案:以yaml檔案形式儲存介面要素,便於以後統一管理介面要素,介面要素的調整,只需要調整對應頁面的yaml檔案即可。轉載一篇關於yaml檔案處理的文章:selenium+java自動化測試框架之元素管理篇(yaml);