动态

详情 返回 返回

優酷質量保障系列(二)—客户端自動化測試基礎能力建設 - 动态 详情

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

前言

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

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

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

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

客户端自動化基礎能力

自動化測試驅動選型

在這裏插入圖片描述

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

一款好的測試框架具備這樣幾個特徵:
雙端一致性,也就是説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自動化的使用。

框架中還封裝了BaseOperation基礎操作,例如:pageSwipe 會按照屏幕尺寸進行頁面的滑動,確保case在不同設備上滑動幅度相同,ModuleSwipe可根據傳入element範圍內進行滑動,入參包括滑動方向、滑動幅度以及滑動次數等,提供基礎的操作內容方便上層腳本更加順暢的調用。

圖像識別能力

在隨着框架基礎能力的封裝完善,只滿足傳統UI自動化使用已經限制了自動化本身的覆蓋度,侷限性也比較大。目前可以通過數據和圖像兩個方面的補充使傳統UI自動化擴展性更好一些。

數據方面主要指是自動化測試的一些input數據內容例如mock數據的設置等,另一方面就是圖像,自動化測試框架也封裝了圖像相關的api進行補充完善。

在圖像方面框架還有截圖處理的能力,例如:截圖標記的功能,可以完善測試報告,增強排查手段,如下圖所示,當傳入check元素後進行截圖,截圖圖片上會自動標記出校驗的區域或者元素,框架還支持圖片剪裁的能力,主要是方便支持區域OCR識別以及圖片相似度對比的驗證。最後還支持圖片的翻轉能力,這塊主要是為了解決iPad轉屏後截圖不正,影響圖像識別準確性的問題。

在這裏插入圖片描述

自動化能力平台接入

自動化測試方案

在這裏插入圖片描述

自動化執行結果展示

1.測試結果頁支持測試時長、測試用例集、用例數、成功失敗case數量以及通過率的展示,詳情請見下圖:
在這裏插入圖片描述
在這裏插入圖片描述
2.測試報告其它支持功能:

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

如下圖展示:
在這裏插入圖片描述

未來規劃

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

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


在這裏插入圖片描述

Add a new 评论

Some HTML is okay.