昨晚被空調(diào)吹凍感冒裆泳,一早上起來就頭痛發(fā)燒诈铛,在社區(qū)醫(yī)院開了點藥之后隙赁,回來睡了一覺好很多,所以今天把自己所搭建的雛形框架的說明大概講一下炼蛤,基本涵蓋了所有自動化功能,而且也可以使用到很多項目中蝶涩,不用改變結(jié)構(gòu)理朋,只要更改邏輯層和測試用例即可
一.自動化測試框架
Appium+python+unittest測試框架目前使用的公司很多,但是總是覺得缺少一些回歸的東西
二.自動化框架所涉及的功能以及層級
1.測試包管理(涉及被測APP包管理)
2.業(yè)務(wù)邏輯功能的封裝(操作流程)
3.日志管理(涉及自動化測試用例執(zhí)行的日志管理)
4.測試用例管理(unittest進(jìn)行case管理)
5.錯誤截圖管理(涉及一些錯誤截圖绿聘、關(guān)鍵步驟截圖管理)
6.斷言管理(對于測試執(zhí)行的判斷)
7.數(shù)據(jù)驅(qū)動管理(對一些輸入的參數(shù)進(jìn)行配置管理嗽上,類似于excel文件、csv文件….)
8.配置文件管理(類似一些配置文件以及一些初始化配置信息)
9.自動化測試報告管理
四.自動化測試實戰(zhàn)
1.自動化測試環(huán)境準(zhǔn)備
appium版本 V1.13.0
python版本 V3.7.2
真機Android版本9
APP一起長大家長端(公司的產(chǎn)品斜友,家里有孩子的可以了解一下)
2.自動化測試用例場景
登錄模塊:
用例描述涉及兩條:
(1)正確的賬號炸裆,錯誤的密碼,登錄失敗
(2)正確的賬號鲜屏、正確的密碼烹看,登錄成功
?3.自動化框架設(shè)計圖 (所有自動化測試可能最重要的一步,根據(jù)Pageobject設(shè)計思想洛史,對框架進(jìn)行設(shè)計并畫圖展示惯殊,這一步在自動化評審階段尤為重要)
4.各個模塊代碼實現(xiàn)
a)測試包管理(模塊名字可隨意定義)
這個模塊主要放置測試所使用的APP包
b)基礎(chǔ)視圖模塊(Baseview)
? 該模塊封裝了一個類baseview,該類封裝最基本的方法也殖,主要功能為:
? ? ? ?初始化driver
? ? ? ? 基礎(chǔ)方法封裝
代碼如下:
c)公共模塊
包含一個公共方法封裝土思、driver驅(qū)動封裝、測試用例執(zhí)行前后的封裝等
公共方法代碼:
driver方法代碼:
Unittest用例執(zhí)行前后操作代碼:
d)業(yè)務(wù)邏輯模塊(businessView)
所有被測APP的業(yè)務(wù)邏輯層全部放置在該模塊中(目前只涉及登錄模塊的邏輯忆嗜,所以只包含了登錄的邏輯己儒,其他模塊可以依次按照邏輯新增邏輯層),代碼如下:
e)配置文件模塊
測試所用到的日志配置文件捆毫、啟動參數(shù)yaml文件等闪湾,我這邊只配置了框架所需的兩項,分別為log.conf以及啟動參數(shù)配置
其中l(wèi)og.cof代碼:
啟動參數(shù)配置:
f)數(shù)據(jù)驅(qū)動模塊
該模塊只是針對一些測試數(shù)據(jù)的存放绩卤,目前的項目是以CSV的方式進(jìn)行儲存途样,所以獲取CSV數(shù)據(jù)的方法放在的common方法中
g)日志儲存模塊
主要存放每次運行測試所產(chǎn)生的日志信息
h)自動化測試報告模塊
主要存放每次運行測試之后產(chǎn)生的自動化測試報告文件
i)screenshots截圖模塊
主要存放錯誤截圖以及重要模塊截圖文件等
j)測試用例模塊
存放測試用例的模塊,用于整個測試用例的編輯濒憋,代碼如下:
k)測試入口
用于執(zhí)行自動化測試用例何暇,該模塊涵蓋了測試報告的指定目錄、自動化測試用例的執(zhí)行入口凛驮、以及配置測試報告等裆站,代碼如下:
備注:
目前還沒做持續(xù)集成,還在完善框架當(dāng)中,完善框架所用到的方法遏插,完善其他模塊的業(yè)務(wù)邏輯以及測試用例捂贿,還是覺得測試場景是自動化測試的關(guān)鍵,未完待續(xù).........