基於selenium+Python3.7+yaml+Robot Framework的UI自動化測試框架

2022-01-06 10:00:02

前端自動化測試框架

專案說明
本框架是一套基於selenium+Python3.7+yaml+Robot Framework而設計的資料驅動UI自動化測試框架,Robot Framework 作為執行器,本框架整體特點為:用例與程式碼分離;用例驅動測試的執行;分層設計、指令碼模組化;自動準備測試條件和資料、事後清理;支援失敗多次重試、且在每次重試前都會還原一次測試環境,保證重試的成功率;支援郵件呈現測試結果;可靈活挑選專案和用例執行。
框架特點說明
資料驅動
封裝一個測試指令碼,通過不同的資料來驅動,保證測試覆蓋率
用例執行前初始化,執行後釋放資源
執行測試資料,並進行結果判斷,測試失敗或者異常時,會產生相關紀錄檔和截圖
用例與程式碼分離
程式碼中不含有測試用例
測試用例採用robot格式撰寫
用例按功能點分類
每個用例都是獨立的,不互相依賴也不互相影響
可按專案、模組、測試點挑選執行用例
執行結束後,還原測試環境,清理髒資料
分層設計
操作物件、頁面元素、業務邏輯、測試資料相互剝離,靈活呼叫
封裝底層操作元件
按頁面封裝和分類頁面元素
封裝基礎邏輯,組合業務邏輯實現功能點
指令碼模組化
不同功能指令碼模組化,各模組間保持獨立性和可融合性
封裝基礎方法,如隨機郵箱等
封裝通用模組,如檔案讀寫、壓縮檔案、郵件傳送、紀錄檔等
模組支援自主開啟和關閉
失敗多次重試
可自主開啟和關閉失敗自動重試功能
重試開始在每輪測試結束之後
每次重試前後會初始化環境和還原環境
只重試失敗用例
每次重試結束會自動合併重試報告
重試結束會自動合併出總報告
報告可選擇自動壓縮並郵件傳送
測試結束後,也可手動啟動失敗重試和合並報告
技術棧
selenium
Python3.7
Robot Framework
yaml
AutoItLibrary
logging
SSHLibrary
databaselibrary
環境部署
安裝python3.7,並將Python的安裝目錄新增到系統環境變數的Path路徑中
命令列視窗執行pip install -r requirements.txt 安裝工程所依賴的庫檔案
AutoItLibrary安裝
安裝autoit-v3-setup.exe(V3.3.14.5),安裝過程中一定要選x64,不然載入AutoItLibrary還是會是紅色
pip install robotframework-autoitlibrary
在Python安裝目錄(\Python37\Lib\site-packages\win32com\client)下,修改dynamic.py檔案,在import pythoncom後,加 pythoncom.CoInitialize() 。(目的是解決在ride中匯入AutoItLibrary時,報(-2147221008, ‘尚未呼叫 CoInitialize。’, None, None)的錯誤。)
將相關瀏覽器的驅動,比如谷歌瀏覽器的驅動chromedriver.exe放在python的安裝目錄(\Python37)下
將自定義庫,比如randomGenerator.py放在python目錄(\Python37\Lib\site-packages)下
在Python安裝目錄(\Python37\Lib\site-packages\robotide\contrib\testrunner)下,修改testrunner.py檔案,將’latin1’ if IS_WINDOWS修改為’mbcs’ if IS_WINDOWS。(目的是解決RIDE控制檯中文顯示亂碼的問題),修改後的內容和位置具體如下:
在這裡插入圖片描述

安裝UI元素定位工具(根據實際需要選裝)

火狐瀏覽器外掛
Try XPath
xPath Finder
ChroPath
谷歌瀏覽器外掛
ChroPath

框架目錄結構圖及相關說明

1、程式碼目錄結構圖如下
在這裡插入圖片描述
2、目錄結構說明
Config ===========> 組態檔
pycode ===========> python公共方法、模組封裝,工具類等
rfcode ==========> 存放專案/系統的測試用例、公共設定、介面元素、業務邏輯操作等等
logs ==========> 紀錄檔檔案
Report ==========> 測試報告
common_Run.py ===========> 測試用例總執行模組
testfile ============> 存放測試過程的操作檔案
requirements.txt ============> 相關依賴包檔案
run_test.bat =============> 測試啟動按鈕,測試過程中,若有失敗則自動進行失敗重試
retry.bat ============> 測試結束後,再次進行失敗重試手動啟動按鈕

程式碼設計與功能說明

1、定義執行組態檔 config.yml
該檔案主要控制測試的執行方式、模組的功能開關、測試用例的篩選、郵件的設定以及紀錄檔的設定,具體如下:
在這裡插入圖片描述
2、測試用例的設計
測試用例以robot格式的檔案儲存,平時只需維護測試資料和期望結果,維護成本低。測試用例的資料格式如下:
在這裡插入圖片描述
3、用例執行指令碼
按照測試用例,組合業務邏輯,實現功能點測試,以供測試用例迴圈呼叫
在這裡插入圖片描述
4、測試執行主程式common_Run.py(收集測試用例,批次執行並生成測試報告,並行送報告到郵件)
在這裡插入圖片描述
5、測試報告呈現
測試概要報告
在這裡插入圖片描述
測試執行過程中若有失敗重試時,則報告中會呈現出前一次失敗的結果和原因,同時也會呈現出重試後成功的結果,並且最終的報告結果以最後一次的重試結果為準
在這裡插入圖片描述
測試執行過程有失敗用例時,報告呈現失敗截圖
在這裡插入圖片描述
報告傳送至郵件時,郵件標題呈現測試通過與否,或失敗用例數
在這裡插入圖片描述
郵件正文直接顯示本次測試概要報告,直觀顯示出執行用例數,失敗用例數,失敗的用例模組等結果。
在這裡插入圖片描述

專案實戰演示

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述