Android UI自動化用例設計技巧

來源:互聯網
上載者:User

標籤:退出   介面   extend   ext   soft   date   面向介面   自動化   get   

一、封裝方法1、編程如何越來越快:  首先,需要經驗豐富,知識面廣。  其次,每一個熟練編程的人員,都會有自己的一個庫,解決各種問題、各種通用的方法函數。  同理,自動化指令碼也是編程,測試案例則為需求,UI自動化編寫雖然容易,但是介面變化快、維護龐大。所以封裝通用方法,是最快最容易的途徑。2、哪些方法需要封裝:  公用的操作方法  經常使用的步驟:超過兩次以上  經常使用的組件:輸入框、文字框、列表  經常操作的布局:多個組件組成通用的布局  經常操作的頁面:ui頁面由一個一個單獨Activity組成,就可以將Activity封裝成單獨的類  通用的工具函數:檔案操作、時間操作之類3、初級封裝:  通用方法庫:將通用的方法封裝在一個java檔案中,比如登陸、檔案操作、時間操作  專用方法庫:比如登陸專用的方法:qq登陸、微博登陸等  用例集:通過調用方法庫中的方法實現用例,這樣看起來簡潔清晰。4、設計一個用例的過程:  先編輯好用例執行步驟、順序  然後設計好對應的方法名  然後建立一個class將這些寫入,要將編輯好的用例步驟、方法名等作為注釋,這樣更清晰   比如設計簡單用例如下:  Cer_MTBF_01:連絡人的添加和刪除  預置條件:1、在新增連絡人...之前通訊錄內無任何連絡人  
執行步驟 對應方法
開啟通訊錄 openContent
清空連絡人 clearContent
建立連絡人 newContent
確認連絡人建立成功 confirmContents
刪除連絡人 deleteContens
確認連絡人刪除成功 confirmDelContents
退出通訊錄 exitContent
二、介面化1、面向介面的變成也可以引入自動化用例編寫中。可以用到設計核心用例,基本核心用例20-30條,核心功能基本不會變,但是UI變化比較大,這樣我們沒必要把用例重新寫一遍,只要把方法重新實現一下。  設計用例與實現用例分離  正常化用例  多態-應用的多版本 三、組件化與布局化1、對常用的組件單獨編寫組件常用方法。我們最終擷取的每個對象都為某一個類型的組件 例如:對EditView設計通用的方法,首先想想你是如何測試編輯框的,將這些方法全寫在抽象的 EditView類中    擷取EditView對象    輸入文本    清除資料    判斷編輯框類型    判斷編輯框    各種異常與特殊方法預置、   四、介面化1、介面化知識應用由不同的Activity組成,那我們可以將每一個介面封裝成一個類,操作、方法、變數,也就是屬性和方法再單獨封裝。這樣只要哪個介面有變化,再修改對應的Activity就可以了。  執行個體:    撥號盤頁面  屬性:    常用的固定號碼,如:10086,10010,10000    常用的暗碼:*#06#、*#*#4636#*#*    組件ID:頁面各個組件ID按功能命名    頁面對象:頁面各個UI對象  方法:    輸入號碼    清除號碼、刪除號碼    撥號    其他設定(新增連絡人...、暫停、等待、傳送簡訊)    選擇號碼2、Activity查詢方法   方法1:有源碼,從Manifest檔案中擷取   方法2:使用命令查詢應用的全部Activity   adb shell dumpsys package<包名>   方法3:查詢當前Activity棧定的Activity   adb shell dumpsys activity   方法4:找到焦點Activity   adb shell dumpsys activity | find "mFocusedActivity"   簡化搜尋字元   adb shell dumpsys activity | find "mF" 五、邏輯與資料分離1、實際用例編寫過程中有很多資料非固定的而是可變的如:   帳號資訊:郵箱帳號、無線登陸帳號、即時通訊軟體   邏輯控制:log輸出、代碼分枝切換   電話號碼   。。。。。對於可變的資料,我們應該剝離出來,使用一個資料類來進行控制和擷取 思路:我們單獨設計一個class,功能就是,從某個地方讀取變數,再賦值給我們設計好的變數。 2、資料擷取方式  1)從命令傳入參數:-e 索引值對  2)從檔案傳入參數:寫一個設定檔,檔案裡包含組態變數的資訊,放到手機目錄下,然後檔案讀取,賦值給我們的變數。  3)從雲端傳入參數:需要有一個雲端服務測試系統,用例通過POST請求,請求伺服器,伺服器上設定好資訊,伺服器再把資訊返回給用例,用例再把資訊賦值給對應的變數,然後其他用例再從資料類中讀取。 簡單一實例:  建一個管理資料的package  建一個資料類  設定變數  在寫一些擷取變數值的方法 
    public class Date extends UiautomatorBase{        public static String wlan="";        public static String QQ="";        public static String phone="";    }        public void getConfig(){        wlan="";         QQ="";        phone="";    }    }    

 

 

 

Android UI自動化用例設計技巧

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.