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

hadoop框架結(jié)構(gòu)的說明介紹
自動化測試框架思想和構(gòu)建
請問數(shù)據(jù)驅(qū)動的自動化測試框架結(jié)構(gòu)是怎么構(gòu)成的?
【RISC-V 生態(tài)軟件系列】 HaaS UI基礎(chǔ)教學八:JSAPI自動化測試方法
HarmonyOS自動化測試框架—Hypium
HamronyOS自動化測試框架使用指南
基于Web的自動化測試框架的研究

基于WATIR的WEB自動化回歸測試框架

評論