一、GitHub鏈接
項目網址鏈接:
https://github.com/yff9802/Java_Selenium
代碼克隆鏈接:
[email protected]:yff9802/Java_Selenium.git SSH方式
https://github.com/yff9802/Java_Selenium.git HTTPS方式
二、框架結構圖
框架用到Java+Maven+Selenium+Tesng+Jedis+Jenkins持續集成,除去Jenkins持續集成,其他相關知識點和知識點的參考鏈接都在框架代碼中有寫到,可以克隆代碼後學習。由於是該框架在工作中用到,在框架中實際的案例中,將系統登錄的方法註釋掉並將相關信息刪除,所以實際是運行不了。但是整體框架的知識點都已體現出來,只是把具體的業務代碼刪除和登錄的網址、賬號、密碼、服務器IP都註釋了。
- main
- java
- base
- DriverBase:封裝啓動本地或遠程的各種瀏覽器的類
- JedisBase:封裝利用JedisPool獲取和歸還Jedis對象,操作Redis
- utils
- MyRemoteWebDriver:用於啓動遠程WebDriver的類
- PropertyReader:讀取Properties的類
- ScreenShot:截圖工具類
- ThreadLocalUtil:用於操作_ThreadLocal的工具類_
- base
- resources
- log4j2.xml:log4j2的配置文件、控制檯輸出和文件滾動輸出
- java
- test
- java
- listener
- TestLogListener:Testng監聽接口TestListenerAdapter實現類,用於測試方法不同的操作
- TestReportListener:Testng自定義報告IReporter接口實現類,用於自定義結果報告
- test
- base
- BaseTest:
- TimeBaseOpt:WebDriverWait,隱式等待相關設置
- common
- 封裝頁面共用方法,用於Page層調用
- data
- 數據層:數據常量做數據驅動,動態數據用jedis對象來保存
- locator
- 定位層:用於存放對應頁面相關元素的xpath定位
- page
- 邏輯層:具體每個測試用例的業務邏輯編寫
- test
- 業務層:利用Test註解及相關配置,封裝成對應的測試方法
- base
- util
- 相關工具方法,例如獲取當前時間(爲了實際業務中單據編號不重複)、操作Excel、文件相關操作等
- listener
- resources
- config
- config.properties:將配置文件,例如瀏覽器Driver路徑、Redis的IP、端口等
- download
- 定義的文件下載的默認路徑
- drivers
- 存放各種瀏覽器的driver文件
- report
- template.html:生產的測試報告的模板文件,會在報告監聽器中用到
- config
- java
- pom.xml:Maven配置文件
- testng.xml:實際運行的文件
三、框架運行注意點及運行大體邏輯
3.1 運行注意點
3.2運行大體邏輯
下面是一個大體的運行邏輯,然後就是監聽器監聽執行的@Test的方法,並輸出日誌、錯誤時截圖、運行完成後生成報告等。