1. 程式人生 > >UI自動化框架分層

UI自動化框架分層

專案以前的UI自動化大概是這樣分層的

1.Common功能層:一些經常被呼叫的基本常用操作,用來完成某項具體的功能,與具體的業務無關。比如常用的封裝:

 --將元素定位方法重新封裝

--封裝上下左右滑動 eg: swipe(direct='down',count=1)

--pinch

-截圖

-元素等待

有效的封裝,能減少程式碼量,提供用例寫作效率,減少維護成本。 

2.應用功能層:

       與業務有關,呼叫基礎控制元件操作實現特定的功能,比如被很多頁面共享的公共元件,如導航欄。 經常要執行的操作, 如登入。

好處:

        這些功能會被多次呼叫,實現複用提供效率。 

       當功能實現發生變化時,只需要修改這個方法就可以了。 比如,登入在用例中被多次呼叫,版本升級後,登入的步驟發生了改變,我們只需要修改登入這個方法,用例不需要做任何改變。 

 3. 頁面元素目錄

     自動化測試很大一部分工作就是頁面元素的維護。為每一個頁面或是activity建立一個模組,每一個模組裡有其同名類,類中存放元素的資訊。將多頁面共享的元件抽出來,單獨建立一個類。 

     這麼操作的好處是,如果頁面元素髮生了變化, 一是能快速的找到並修改。 二是,只需要修改這一個地方就可以了。 如果按照網上那些例子,元素的資訊都是寫在程式碼裡,簡直災難,日後如何維護。

     PS:按照PO模式,類裡還應該有這個頁面的類方法。但是由於我們的APP的特殊性,單獨屬於某個頁面的方法並不多,所以我們將方法集中到一個檔案到了應用功能層中了。 

4.用例層

    按照需要劃分子目錄, 包含所有的用例。

    用例層大量呼叫Common功能層和業務功能層的方法, 選擇元素,操作元素, 為用例新增斷言。 

5.全域性變數目錄

      存放諸如:螢幕尺寸,等待時長,樁資訊,使用者登入資訊,被測試的APK包名,啟動activity等。

6. 日誌目錄

7.截圖目錄

8.報告目錄

9.apk目錄,存放被測apk和測試中所需要的其它apk。

另:上面存在多個目錄(有的是包),目錄下還會有子目錄, 在模組中匯入其它模組/包時,按照什麼原則來匯入? 

我的經驗,將專案所在目錄設定為PYTHONPATH, 涉及到匯入時,皆此目錄為基準,

hiApp(專案名稱)
 --Common
    CommonFun.py
 --testcases
    --子目錄
        --xx.py
        
 

假設在xx.py裡要匯入CommonFun.py,在xx.py裡這麼寫

from Common.CommonFun import xx