優酷質量保障系列(二)—客戶端自動化測試基礎能力建設

文娛妹導讀
自動化測試能力建設過程當中,自動化框架選型、框架設計核心和思路、自動化能力平臺接入,是自動化測試能力建設過程當中重要環節。文章分享優酷APP自動化測試能力建設過程當中的經驗
本系列文章將陸續發佈,感興趣的朋友持續關注!

前言

隨着移動端版本迭代的加快,快速測試,快速反饋已是一個常態化的流程,週期內版本發佈頻率的增長,各項測試的時間正在急劇縮短,且迴歸性的任務不斷充斥當中,各個階段都須要迴歸測試的介入來確保集成以後各個模塊的正確性。android

在當前迴歸測試中主要集中如下幾個痛點問題ios

  • 測試迴歸主次模糊,抓不住迴歸重點的內容,致使在較短期內很難完成大量的迴歸case
  • 迴歸用例基本大部分都是靠手工執行,重複性工做較多,迴歸效率低下
  • 各個業務團隊或多或少都有一些自動化的研究和接入,但開發的工具自己都是各自爲戰沒有起到互相配合&互相補充的做用,沒法實現工具紅利。

基於客戶端的自動化能力進行測試框架的封裝,實現腳本編寫&執行與平臺無縫對接,而且結合了業務場景進行平臺自動化能力的落地,同時統一自動化框架的開發以及核心case用例的整合,使得總體迴歸測試成本下降。api

客戶端自動化基礎能力

自動化測試驅動選型

在這裏插入圖片描述

如何選取一款自動化測試框架呢?

一款好的測試框架具有這樣幾個特徵:
雙端一致性,也就是說ios和android能夠在同一框架下編寫用例,提升腳本開發效率;
運行穩定性,對UI自動化自己存在不穩定性,框架須要運行穩定才能更好的支持測試;
簡單易用,框架接入自己須要簡單易懂下降入門的門檻,方便快速使用;
低耦合性,各個層級保持低耦合性來下降腳本的維護成本,高擴展性指的是方便與平臺的對接能力和腳本調用能力。框架

自動化測試框架設計

核心場景自動化結構設計主要分爲3層:最下層爲驅動能力,提供核心驅動力和操做的能力,維護整個case執行的生命週期。工具

中間層是框架封裝層,直接依賴Driver層,提供通用basecase的入口和工具類的使用,以及業務通用能力抽象。最上層爲TestCase直接依賴框架封裝層,封裝業務邏輯以及testcase的編寫,層級之間相互解耦,層層依賴。
在這裏插入圖片描述
框架層結構,主要分爲4大塊內容:佈局

  • 第一部分爲Framework_Core,這部分主要是圍繞着BaseCase進行的擴展, Basecase做爲framework的入口,是全部case的父類,遵循框架的生命週期持有driver對象
  • 第二部分是Device_Config,這裏主要初始化一些設備和配置信息,例如deviceid、pkgName等
  • 第三部分utility,這部分是工具類的封裝,包含圖像相關的處理,路由跳轉功能。豐富的util類目的是讓測試case的驗證更加全面準確。
  • 第四部分是Report.這塊主要是測試報告的生成,生成對接平臺標準化的報告結果

框架Log體系&Check體系&基礎操做封裝

框架中還封裝了完整的Log體系,主要用於測試過程trace的追蹤和測試報告的生成。Log體系主要包含:測試

  • 添加case步驟
  • 添加截圖
  • 添加驗證點
  • 添加操做動

除了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.測試報告其它支持功能:

  • Testcase維度crash分析結果以及crash.log下載
  • 失敗case支持bug提交
  • 失敗case同時支持失敗截圖+失敗trace信息展現

以下圖展現:
在這裏插入圖片描述

將來規劃

平臺在客戶端自動化測試基礎能力建設上已有了必定成效,隨着業務的不斷接入並投入使用在平常測試中使用,總體迴歸效率以及人力成本節省都有顯著的提高。

但總體在自動化能力建設上後續還會有更大的挑戰內容,將來將着眼於圖像能力建設結合自動化平臺產出更多有價值的自動化測試方案。


在這裏插入圖片描述

相關文章
相關標籤/搜索