測試人如何高效地設(shè)計自動化測試框架?

它是由一個或多個自動化測試基礎(chǔ)模塊、自動化測試管理模塊、自動化測試統(tǒng)計模塊等組成的工具集合。以常見的前端UI測試為例,一個測試框架大概包括測試對象,測試組件,基礎(chǔ)類和函數(shù),工具類,測試數(shù)據(jù),異常處理,測試日志,斷言和測試報告等這些模塊。在設(shè)計測試框架的時候,我們要盡可能的將這些模塊有機的結(jié)合起來,將腳本能夠有效的組織、連貫應(yīng)用起來,提高測試腳本的可維護性和可讀性。


由于應(yīng)用系統(tǒng)技術(shù)五花八門,幾乎沒有測試框架能應(yīng)用在多個項目上并體現(xiàn)出應(yīng)有的價值,所以一般情況都需要根據(jù)項目自身情況來定制化我們的測試框架,常用的有數(shù)據(jù)驅(qū)動,關(guān)鍵字驅(qū)動和兩種方式的混合。
比如,寫了一個類,“人”類,“人”有自己的名字年齡等屬性,每個“人”又有一條狗做為自己的屬性,你可以把“人”類的屬性和“人”的狗的屬性都寫在“人”類里,這就成了高耦合。
而把狗的屬性剝離出來,寫成“狗”類,在“人”類里只放一個對“狗”的對象做引用,這個“狗”類,即可做為“人”的屬性,也可以做它用,即 低耦合。
對象、測試數(shù)據(jù)、業(yè)務(wù)邏輯相互剝離、靈活調(diào)用,在前端UI測試上可以得到明顯的效果,我們可以使用PageObject設(shè)計模式來實現(xiàn)對象和業(yè)務(wù)邏輯的剝離,使用DataProvider來實現(xiàn)數(shù)據(jù)業(yè)務(wù)邏輯分離。
安裝相應(yīng)的環(huán)境依賴:
安裝python3.7(要保證pip能用,一般安裝python3.7會自動安裝pip) 安裝pytest框架---- pip install pytest 安裝request庫---- pip install request 安裝openpyxl庫(測試數(shù)據(jù)保存在excel中,需要依賴讀取excel的庫)---- pip install openpyxl 安裝pycharm(編寫python腳本工具)
從實現(xiàn)來說就是:先測試底層的頁面操作對象,通過調(diào)用操作對象、及業(yè)務(wù)邏輯實現(xiàn)對功能點的驗證,再通過調(diào)用業(yè)務(wù)邏輯組合功能點實現(xiàn)對業(yè)務(wù)流程的驗證。不同的業(yè)務(wù)流程,對于底層的操作組件、中間層的功能點函數(shù)是完全可以復(fù)用的,只是調(diào)用的業(yè)務(wù)邏輯的差異,或者是測試數(shù)據(jù)的差異性。這樣的好處是腳本相互獨立性,代碼復(fù)用,易維護,如有新的業(yè)務(wù)流程可以調(diào)用已有代碼來組合。
common:存放公共方法; config:存放環(huán)境配置信息; lib:存放第三方庫; main:框架主入口; report:存放allure測試報告; test_case:存放測試用例; test_data:存放測試數(shù)據(jù);
對于一些較通用的方法,可以封裝,比如log,assert,異常處理,文件讀寫操作,數(shù)據(jù)庫讀寫操作,保存頁面截圖等等,在需要的時候直接在測試用例里調(diào)用即可。


自動化測試實施思路:
1.項目準(zhǔn)備:安裝相應(yīng)的環(huán)境依賴;
2.設(shè)計基于pytest的測試框架結(jié)構(gòu):
3.實現(xiàn)接口公共文件:封裝http請求;
4.抽離測試環(huán)境配置信息:獲取不同環(huán)境的URL,放到config目錄;
5.創(chuàng)建conftest.py放置一些公共的fixture;
6.將測試數(shù)據(jù)放到excel中;
7.編寫自動化測試業(yè)務(wù)代碼;
8.集成allure;
9.自動化執(zhí)行生成結(jié)果;
10.Jenkins環(huán)境搭建;
自動化開展建議:
抓住業(yè)務(wù)測試工作中的痛點和領(lǐng)導(dǎo)的痛點,多溝通多交流,優(yōu)先解決基層的工作痛點,相信一個好的領(lǐng)導(dǎo)會看到你的責(zé)任心和付出;
