APP 自動化測試封裝結構模式

來源:互聯網
上載者:User

標籤:一個個   manifest   模仿   版本   roi   round   ui自動化   自動化   alt   

原文出處http://www.toutiao.com/a6268089772108333314/

做過UI自動化測試同學,都會深深體會幾個痛點:維護量大、適配量大、編寫代碼巨大等。基於這些問題,大家都會想到抽象封裝通用常用方法,編過程式的同學都知道,如何提高編程速度,那就是有一套自己熟悉和好用的函數庫,這樣編程很大部分就如搭積木遊戲,可以快速搭建程式。基於此我們設計了第一套封裝結構模式,如所示:

從以上結構,不難發現應用基礎庫比較淩亂,沒有分類。如果是自己寫的還記得住,要是移交給別人,就顯得很糟糕了,別人不願意去看去用。那麼,急需解決的問題就是如何分類比較合理。

從基於UI測試的測試對象出發,我們測試的對象為一個個的Activity,那我們可以使用Activity來進行分類。首先每個Activity 都有自己的專有方法,如撥號介面,會有輸入號碼、撥號、刪除號碼等功能,我們將每個Activity劃分為一個單獨的類,類裡面把這個Activity 涉及的方法都寫好提供給用例調用,如撥號介面的屬性與功能的基礎分解。

依據以上 Activity 封裝模式,我們還需要在結構中再加入一層 Activity 函數庫,那麼,新的結構圖如下所示:

這裡涉及了幾個Activity的查詢方法。[LG1]

方法1:從開發那取得manifest檔案

方法2:使用命令查詢應用的全部Activity

adb shell dumpsys package <包名>

方法3:查詢當前Activity 棧頂的Activity,推薦使用此方法

adb shell dumpsys activity

找到棧頂Activity

[LG1]這幾個查詢方法再做下比較吧?

方法4:找焦點Activity

adb shell dumpsys activity | find “mFocusedActivity”

簡化搜尋字元

adb shell dumpsys activity | find “mF”

以上方法,最快捷的是方法四可以馬上知道當前的頁面資訊,最全面的是方法1與方法2,使用哪種方法需要依據實際使用方式進行選擇。

之前我們介紹過,基於同種布局抽象出通用方法。我們將常用的通用方法,放在公用庫中,將每個介面方法放於每個單獨介面的類中。下面來看一下基本基本類圖:

在各種方法都固化完後,編寫用例就成了搭積木遊戲,可以快速的搭建需要的用例。將用例的邏輯寫在用例中,用例的資料分離出來全部寫在對應的Activity 類中。這樣平時主要維護已有的各個Activity內方法與資料。

最後再按照功能將用例結構抽象成為一個標準架構層理論,這樣大家就更容易明白與理解了。

基於此架構,基本不變的層為:布局層、組件層、通用層。介面層會因為介面的變化而進行維護變化。設計時候尤其注意函數的通用性、函數的參數、各種重載函數,以及各種異常情況都需要重點考慮和規避。作為通用的方法,為了保證函數的調用不出問題,也是需要測試的,我們必須寫一份用例來測試這些方法,模仿單元測試方式來檢查這些通用方法的可用性、穩定性、可靠性,以此來保證在應用變化,Android版本變化時候能快速的發現哪些函數存在的不相容現象,進行及時的修改,保證業務的正常進行。

介面層的所有方法都基於介面方式進行設計,實際的用例由這些介面方法組成。當版本變化的時候只需要重新實現介面重新變化一份,用例只需要變換一下執行個體化的類就可以完成切換用例。如此這樣,用例的固定步驟也可以不用變化,僅僅變化每塊積木裡面的內容就可以。

以上內容總結為如下幾點:

  • 合理封裝方法,最佳化工程架構

  • 組件化

  • 布局化

  • 介面化

  • 介面化

 

APP 自動化測試封裝結構模式

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.