Android UI自動化用例設計技巧


一、封裝方法
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="";
    }
    }
    

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM