自己折騰了一個python的自動化測試框架,梳理了一下流程,簡單分享一下。
項目背景
B/S架構,進行用戶界面的自動化測試
工具選擇
python開發的自動化測試框架,足夠靈活,可以隨時根據需求進行變更,易於維護
框架思路(unittest)
采用數據驅動的設計,將數據分層出來,與業務邏輯剝離,測試人員專注測試用例,不用關注代碼,提高了測試效率
測試框架介紹
測試工程的結構如下:
Data目錄
存放涉及業務的資源,例如上傳圖片場景的圖片資源
Driver目錄
存放瀏覽器驅動文件
Excel目錄
存放測試用例(重要)
4個sheet分頁,如下:
PageElements分頁 –存儲頁面元素的關鍵字定位信息
TestConfig 分頁 --配置信息
TestSuite 分頁 --測試用例標題
TestSteps 分頁 --測試用例的執行步驟
Package目錄
封裝的方法簡介
assertUtil.py --斷言
assert_equal """預期結果和實際結果 相等"""
assert_prompt """頁面提示信息"""
…
base.py --涉及系統的信息(暫時不用)
base_get_hostname """獲取本機電腦名"""
base_get_ip """獲取本機ip"""
…
browserUtil.py --瀏覽器的操作
browser_title """獲取當前瀏覽器標題"""
browser_url """獲取當前瀏覽器URL"""
…
excelUtil.py --excel文件的操作
excel_open """打開excel文件(xls)"""
excel_sheet """指定sheet頁面"""
excel_cell_data """獲取指定單元格內容"""
…
keysUtil.py --鍵盤操作
location.py --封裝頁面元素定位
login.py --登錄業務
objectMap.py --關鍵字映射
ob_key_input """根據關鍵字input執行頁面元素查找"""
ob_key_click """根據關鍵字click執行頁面元素查找"""
…
util.py --通用場景
ut_highlighted """元素高亮"""
…
Picture 目錄
存放用例執行的報告
Test_case 目錄
存放測試用例執行腳本
Config.py
存儲常量、配置信息之類的信息
PageElements.py
存儲頁面元素信息
例如登錄頁面的3個控件:
"登錄-輸入用戶名" --表示用戶名輸入框
"input>css>input[placeholder='請輸入賬號']"
Input –定義的關鍵字
Css –元素定位方式
input[placeholder='請輸入賬號'] --元素定位表達式
測試用例執行的流程圖:
步驟1:
執行TestCase_UI.py腳本,用例啟動
步驟2:
讀取excel目錄下測試用例(*.xls)
TestConfig分頁:
獲取瀏覽器啟動類型 --啟動相應瀏覽器
獲取URL地址 --打開URL地址
步驟3:
讀取TestSuite分頁:
逐行讀取測試用例執行標識,標識為“yes”表示執行該條用例,為“no”跳過該用例
獲取“測試用例序號”
步驟4:
讀取TestSteps分頁:
按照“測試用例序號”讀取測試用例執行步驟
例如VDT_WDGZT_001用例,存在4個步驟,逐行讀取“測試步驟描述”
步驟5:
讀取PageElements分頁:
按照“測試步驟描述”讀取關鍵字、頁面定位元素、頁面元素定位表達式
按照關鍵字、頁面定位元素、頁面元素定位表達式 定位到頁面元素執行相應操作
例如如下3個步驟:
在輸入框中輸入“搜索資源”
單擊搜索按鈕
執行檢查點操作
注意:
每個步驟執行完畢,根據執行的情況在測試用例中回寫“測試結果”
例如“我的工作台”步驟執行成功,在TestSuite分頁,“測試結果”填寫“用例步驟執行成功”
相應的在TestSteps分頁,測試用例1,的“測試結果”填寫“用例執行成功”
如果用例步驟執行失敗
例如“公共-登錄用戶名稱檢查” 步驟執行失敗,在TestSuite分頁,“測試結果”填寫“用例步驟執行失敗”,“頁面截圖”填寫失敗截圖的路徑
相應的在TestSteps分頁,測試用例1,的“測試結果”填寫“用例執行失敗”
測試用例步驟出現失敗的情況,則不再執行該用例的剩下的步驟,開始執行下一個測試用例
步驟6:
一條測試用例執行完畢,重復執行步驟3、4、5,直至全部測試用例執行完畢
步驟7:
用例執行完畢,輸出測試報告,報告詳情:
測試用例執行日志
例如在測試用例中勾選2個用例執行,執行日志如下: