selenium+java+testNG+pageObject深入理解自動化測試框架

關於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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章