關於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編寫測試調用類;
二、該框架中使用的主要思想
- 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);