文娛妹導讀
自動化測試能力建設過程當中,自動化框架選型、框架設計核心和思路、自動化能力平臺接入,是自動化測試能力建設過程當中重要環節。文章分享優酷APP自動化測試能力建設過程當中的經驗
本系列文章將陸續發佈,感興趣的朋友持續關注!
隨着移動端版本迭代的加快,快速測試,快速反饋已是一個常態化的流程,週期內版本發佈頻率的增長,各項測試的時間正在急劇縮短,且迴歸性的任務不斷充斥當中,各個階段都須要迴歸測試的介入來確保集成以後各個模塊的正確性。android
在當前迴歸測試中主要集中如下幾個痛點問題:ios
基於客戶端的自動化能力進行測試框架的封裝,實現腳本編寫&執行與平臺無縫對接,而且結合了業務場景進行平臺自動化能力的落地,同時統一自動化框架的開發以及核心case用例的整合,使得總體迴歸測試成本下降。api
一款好的測試框架具有這樣幾個特徵:
雙端一致性,也就是說ios和android能夠在同一框架下編寫用例,提升腳本開發效率;
運行穩定性,對UI自動化自己存在不穩定性,框架須要運行穩定才能更好的支持測試;
簡單易用,框架接入自己須要簡單易懂下降入門的門檻,方便快速使用;
低耦合性,各個層級保持低耦合性來下降腳本的維護成本,高擴展性指的是方便與平臺的對接能力和腳本調用能力。框架
核心場景自動化結構設計主要分爲3層:最下層爲驅動能力,提供核心驅動力和操做的能力,維護整個case執行的生命週期。工具
中間層是框架封裝層,直接依賴Driver層,提供通用basecase的入口和工具類的使用,以及業務通用能力抽象。最上層爲TestCase直接依賴框架封裝層,封裝業務邏輯以及testcase的編寫,層級之間相互解耦,層層依賴。
框架層結構,主要分爲4大塊內容:佈局
框架中還封裝了完整的Log體系,主要用於測試過程trace的追蹤和測試報告的生成。Log體系主要包含:測試
除了Log體系外,business logic還封裝了check體系,check體系主要包含元素檢查以及頁面佈局檢查,check內容例如:check元素是否爲空、字符串是否相等、元素文本是否爲空以及兩張圖片類似度等,完善的check體系能夠增長case的驗證內容,比斷言的方式更加貼合UI自動化的使用。spa
框架中還封裝了BaseOperation基礎操做,例如:pageSwipe 會按照屏幕尺寸進行頁面的滑動,確保case在不一樣設備上滑動幅度相同,ModuleSwipe可根據傳入element範圍內進行滑動,入參包括滑動方向、滑動幅度以及滑動次數等,提供基礎的操做內容方便上層腳本更加順暢的調用。設計
在隨着框架基礎能力的封裝完善,只知足傳統UI自動化使用已經限制了自動化自己的覆蓋度,侷限性也比較大。目前能夠經過數據和圖像兩個方面的補充使傳統UI自動化擴展性更好一些。對象
數據方面主要指是自動化測試的一些input數據內容例如mock數據的設置等,另外一方面就是圖像,自動化測試框架也封裝了圖像相關的api進行補充完善。
在圖像方面框架還有截圖處理的能力,例如:截圖標記的功能,能夠完善測試報告,加強排查手段,以下圖所示,當傳入check元素後進行截圖,截圖圖片上會自動標記出校驗的區域或者元素,框架還支持圖片剪裁的能力,主要是方便支持區域OCR識別以及圖片類似度對比的驗證。最後還支持圖片的翻轉能力,這塊主要是爲了解決iPad轉屏後截圖不正,影響圖像識別準確性的問題。
1.測試結果頁支持測試時長、測試用例集、用例數、成功失敗case數量以及經過率的展現,詳情請見下圖:
2.測試報告其它支持功能:
以下圖展現:
平臺在客戶端自動化測試基礎能力建設上已有了必定成效,隨着業務的不斷接入並投入使用在平常測試中使用,總體迴歸效率以及人力成本節省都有顯著的提高。
但總體在自動化能力建設上後續還會有更大的挑戰內容,將來將着眼於圖像能力建設結合自動化平臺產出更多有價值的自動化測試方案。