日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(转载)UI接口分层自动化测试框架设计思想

發布時間:2023/12/19 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (转载)UI接口分层自动化测试框架设计思想 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

閱讀本小節,需要讀者具備如下前提條件:

1.??掌握一種編程語言基礎,如java、python等。

2.??掌握一種單元測試框架,如java語言的testng框架、python的unittest框架。

3.??掌握目前主流的UI測試框架,移動端APP測試框架Appium,或者掌握Web端測試框架Selenium。

4.??如果是Appium框架,還需要掌握如何定位控件元素,原生頁面可使用安卓SDK自帶的uiautomatorviewer工具,webview頁面可以使用Chrome瀏覽器入"chrome://inspect/#devices",該方法需要FQ或者修改hosts。

5.??如果是Web端,瀏覽器中打開F12即可。

1APP端UI分層自動化測試框架的搭建

?

?

下面以Appium+python+unittest為例介紹UI自動化框架的搭建思路

?

1. 最開始入門級別的代碼

以登錄頁面舉例,如下:

?

最開始的登錄腳本:

?

?

2. 對元素操作的公用方法進行封裝

按照上述代碼寫了很多行,發現每次操作元素都要寫同樣的代碼,一是啰嗦,二是工作量大,這樣就要將重復高的操作抽象出來進行封裝成類,及把元素定位,元素點擊,元素輸入、頁面滑動等方法進行封裝,如下代碼:

?

?

?

上述代碼只是展示了查找元素的方法,在BaseAction類中封裝元素對象的重用操作代碼筆者就不貼出來,大家明白思路即可。

?

3. 測試代碼和測試數據分離

?

開始測試數據還是寫在測試代碼中,如果用例多了,后期需要修改數據,這樣只能在測試代碼中修改,實際中沒有這樣維護代碼的,所以需要將測試數據和代碼分離,筆者選擇ini配置文件存放數據。

那么問題來了,把數據放在ini配置文件中,在代碼中怎樣獲取數據呢,這就需要將操作配置文件的方法封裝成一個單獨的類,即如下代碼

?

?

?

通過對元素操作公用方法的封裝和測試代碼和測試數據的分類,優化的腳本如下:

存放數據的ini配置文件:

app配置:

?

?

存放元素控件:

?

?

存放元素輸入的數據:

?

?

測試腳本:

?

?

4. 通用的公用類封裝

以上的腳本中,其實還缺少一些東西,如啟動appiumsever,日志記錄,發送郵件,數據庫操作等,這幾種操作都是框架公用的,所以單獨封裝成類,代碼如下:

appiumsever類:

?

?

log工具類:

?

?

還有發送郵件類和數據庫操作類筆者就不貼出來了,重在大家理解思路即可。

?

?

5. 筆者框架分層分享

現在在測試界吹噓的分層自動化,意思就是把各種代碼實現的類根據不同的功能進行分層,自動化測試框架包括的元素大致如下:

基于Appium框架運用python語言以及unittest單元測試框架,搭建的APP的UI自動化框架如下:
AppAuto/:
??apk:?存放app的apk安裝包
??config:?存放配置文件以及測試數據,把所有的項目的配置均放在????????????????????????????????????????????????????????????這里,用python支持較好的配置文件格式如ini等進行配置。
??????????實現配置和數據與代碼分離。
??screenshot:?存放測試用到的圖片以及測試時用例失敗截圖
??log:?存放日志文件,包括運行時日志runtime.log、error.log和appium.log日志
??report:?存放生成的html格式的測試報告文件
??src:源碼層
??????common層:?框架級公用方法庫
??????????chche.py:?緩存
??????????dbsever.py:?數據庫操作封裝公用類
??????????emailsever.py:?發送郵件服務封裝公用類
??????????confparser.py:?配置文件解析器
??????????log.py:?日志記錄工具
??????????appiumsever.py: appium服務公用類
??????????initappdriver.py:?初始化driver類
??????????adbconnect.py: adb連接操作
??????????...
??????????(如果還有框架級別的公用方法,還可以在該層封裝成類,通過面向對象的方式調用即可)
??????functions層:?用例級公用方法庫(元素操作公用方法封裝,基于PageObject模式對控件公用方法封裝,常用業務操作封裝)
??????????eleaction.py:?封裝元素操作的一些公共方法
??????????login.py:?登錄操作
??????????...
??????????(該層主要是封裝用例層面的公用方法,常用的操作步驟,針對PageObject思想對不同類型的頁面控件元素的操作封裝等)
??????testcase層:?測試用例層
??????????basecase.py:?測試用例基礎類
??????????testcase1.py:?測試用例1
??????????...
??????runner層:?測試套件層
??????????testrunner.py:?各種加載測試用例的方法封裝,以及生成報告
??run.py:?執行器,整個框架運行該文件即可

?

下面是筆者搭建的一個小框架,僅供參考:

?

轉載:http://mp.weixin.qq.com/s/N49ZbKMTy_irsTxd5GQ9eg(李文祥?光榮之路

轉載于:https://www.cnblogs.com/yang1208/p/7654729.html

總結

以上是生活随笔為你收集整理的(转载)UI接口分层自动化测试框架设计思想的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。