什麼是自動化測試架構
一、先了解一下什麼是架構
特指為解決一個開放性問題而設計的具有一定限制性的支撐結構。在此結構上可以根據具體問題擴充、安插更多的組成部分,進而更迅速和友善地建構完整的解決問題的方案。架構是整個或部分系統的可重用設計,表現為一組抽象構件及構件執行個體間互動的方法。也就是說架構本身不解決特定的問題,它是通過擴充的各種元件或者工具來解決問題,并且它可以友善的添加或者修改部分元件的功能。
二、什麼是自動化測試架構
什麼是自動化測試架構,我們拆分來看的話,其實就是三個方面,自動化、測試、架構,什麼是架構上面說了,還有就是他能執行測試,而且還是自動化的,是以架構的各個元件的主要功能就是圍繞着如何自動化如何執行測試展開的。
這裡可以把架構的各個功能稱作子產品,那我們來看看都需要那些子產品:
1)需要一個基礎子產品,主要是怎麼實作腳本編寫
2)管理子產品,主要的行為是持續內建,定時執行、case管理
3)統計子產品,主要是發送測試報告,統計分析。
那總結一下自動化測試架構的定義就是:把在自動化測試過程中用到的一些功能或者工具,分裝成各個子產品,包括如何進行自動化腳本編寫以及分層功能的基礎子產品,進行持續內建、定時任務的管理子產品,發送測試報告、進行測試結果統計分析的統計子產品等,将這些子產品組成一套可重用的骨架
自動化測試架構的設計原則
- 通用性:能夠在各種各樣的系統和平台都能夠使用
- 易維護性:能夠把我們的資料、用例、架構的實作進行獨立的維護,能夠在實作完善的過程,快速的定義到維護的點,而不對架構的其他功能造成影響
- 定時處理:能夠在指定的時間執行
- 持續內建:當被測程式和測試代碼有更新能夠自動執行
- 調試:可調試行強
- 測試結果:測試報告、測試資料的統計分析
一、架構的設計思想
可以把自動化測試架構主體分為兩部分,一個是内部架構,一個是外部架構,内部架構就是我們自己實作的測試架構代碼,外部架構就是抛開我們實作的核心代碼,要達到自動化測試架構設計原的一些内容時用到的一些第三方工具。
外部架構
主要是指以webdriver為核心,輔以外部第三放架構和工具。用以實作持續內建、自動部署、腳本執行、遠端調用、報告優化、郵件發送導等功能性架構,實作自動化架構設計原則的一些外圍的元件。
内部架構
也就是分層架構,目的在于更好的優化和管理測試用例,更便捷的進行資料、元素、腳本的維護和更快速的建立新腳本
自動化測試架構設計思路
通用的外部架構實作邏輯
maven或者tox-自動編譯,執行TestNG或junit,內建郵件發送等
TestNG或Junit、pytest,調用webdriver或者發送請求的方法,執行自動化測試用例,規範自動化測試腳本
selenium腳本或者接口用例腳本
reportNG或者allure報告優化模闆
main 自動以html郵件通知或者Jenkins發送郵件
二、内部架構
層架架構-也就是代碼結構優化,根據具體的業務和需求可以大緻分為以下幾層,有時并不需要下面所有的層次,選取合适自己業務測試的就行。
TestCase層,執行的用例腳本
Task層,公共業務分裝,是其他的項目不需要的,隻和目前項目相關,比如公共登陸、搜尋等業務
utils層:與業務無關的方法,比如資料驅動-也就進行資料檔案的讀寫、浏覽器操作、元素定位方法等進行封裝
page層或po層:頁面層,頁面層主要維護某一個頁面的所有元素,對頁面的操作、對元素的操作以及和其他頁面的互動,業務其實就是一個元素到另一個元素或者一個頁面到另一個頁面,這就和task層有點重複一般有一個就可以了。
element層:公共元素或者元件的維護,或者自定義元件封裝
data層:資料存儲
properties層:配置檔案、全局變量
來源 http://www.51testing.com/html/86/n-4471986.html