在學會使用unittest后,實際上UI自動化的基礎骨架已經搭建起來了,剩下的就是利于這套框架,增添一些我們需要的功能,目前看來,我們已經可以使用此框架來批量運行用例,欠缺的是整體的思路以及一些其他功能細節,比如日志記錄、封裝webdriver、讀取數據庫等功能的實現。
一、框架結構
其中:
common:
一些基礎的底層方法類,例如:測試報告類、數據配置讀取類、日志類、封裝webdriver類、數據庫連接類、發送郵件類、公共方法類,只要是我們想要實現的一些功能,可以把基礎方法的實現放在common文件夾。
config:
配置文件放在這里,比如:賬號密碼、數據庫鏈接地址等。
log:
運行用例后,日志的存儲文件夾。
report:
運行用例后,測試報告的存儲文件夾。
page:
在POM設計模式下,關于具體UI頁面操作的方法。
test_case:
具體存放編寫的測試用例。
run_all:
用來批量運行測試用例。
二、一些設計的想法和理念
2.1數據分離
數據分離,顧名思義是指要把代碼中的數據和代碼分離開來,這樣方便管理和維護。
在寫用例以及框架時,會涉及到數據的處理,比如說:賬號、密碼、元素定位、測試數據等等,對于經常會用到,但是不會經常修改的數據,比如賬號、密碼等,可以寫到配置文件里,然后再讀取;而對于元素定位的話,我習慣統一放到類里,作為類的全局變量來進行維護調用,而不是寫到代碼邏輯中,之前嘗試過把元素定位放到excel中,但是元素定位需要經常修改維護,其實放在excel里修改很不方便,所以我更習慣作為一個類變量來存儲調用。
2.2 POM設計模式
POM簡單來說,我的理解就是高內聚低耦合的一種實踐,通過分層來使得代碼更容易維護表達,同時把復用性極多的方法整合到一起統一調用。運用到UI自動化中,則是把一個UI測試用例的實現,分為了三層來實現;第一層是driver層,我們把常用的方法封裝起來,比如查找元素的方法find_element()我們封裝成一個定位元素的方法,然后在這個方法里加入元素等待;第二層是page層,也就是頁面層,主要把一個頁面中的操作寫成一個方法,比如點擊確定按鈕,填寫用戶名等;第三層是case層,也就是測試用例層,通過把page中的操作像搭積木一樣組合起來,實現測試流程。
封裝的driver方法 ---》 page:頁面中的操作 ---》 case調用page中的操作
2.3測試框架的完整性
就是加上一些我們需要的功能,比如測試報告、日志的打印記錄、發送郵件等功能,當然不僅限于此,在基本搭建好框架后,可以對框架本身進行易用性的整改,比如我要查詢數據庫獲取數據來入參或者斷言,那就加入數據庫連接的方法;比如為了項目更簡單易用,可以加入UI頁面的可視化功能,python本身三方庫的種類很多,可以根據自己的需要或者想法來改造我們的框架。
-
Web
+關注
關注
2文章
1262瀏覽量
69441 -
自動化
+關注
關注
29文章
5562瀏覽量
79239 -
ui
+關注
關注
0文章
204瀏覽量
21368
發布評論請先 登錄
相關推薦
評論