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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章