1. 程式人生 > >Android 手機端自動化測試框架

Android 手機端自動化測試框架

前言:

大概有4個月沒有更新了,因專案和工作原因,忙的手忙腳亂,趁十一假期好好休息一下,年齡大了身體還是扛不住啊,哈哈。這次更新Android端自動化測試框架,也想開源到github,這樣有人使用才能慢慢完善。

 

思路:

因為手機app裡也是一個個頁面組成的,本質上和web沒什麼太大區別,所以可以使用selenium的以PageObject進行封裝思路,簡化後續用例維護等工作。此框架使用的仍然是基於openatx開源專案,結合allure測試報告,pytest單元測試框架,達到並支援

1.響應速度快(atx基於手機的agent代理接受http請求執行指令碼)

2.測試用例可定製化(pytest單元測試框架,通過裝飾器支援多種功能,包括錯誤重試,重複執行,設定用例順序等一系列功能,可自行查閱pytest外掛)

3.支援同網段下通過wifi直接執行測試,不用連上usb資料線

4.支援多手機併發執行測試(滿足不同機型的統一指令碼相容性測試)

5.支援Jenkins自動生成測試報告(allure本身支援Jenkins的CI特性)

 

專案介紹:

 

 APK_Package

此目錄為手機包目錄,可放置手機安裝包

Base

此目錄為核心目錄

 

 

  BaseDevicesInfo

  此檔案主要處理手機的一些資訊獲取,比如udid,電量,等方法封裝

  BasePage

  此檔案主要為通用的手機操作方法封裝,比如滑動,查詢元素等常規操作

  BaseDecorator

  此檔案主要封裝裝飾器與錯誤截圖,裝飾器由用例呼叫,生成日誌,新增錯誤截圖到allure報告中

  BaseInitPath

  此檔案主要為路徑的靜態方法

  BaseLog

  此檔案主要為日誌方法封裝

  BaseReadConfig

  此檔案主要為讀取config檔案方法封裝

  BaseRunCase

  此檔案集成了所有啟動所需,多執行緒啟動模式,郵件系統,壓縮方法,日誌等

  BaseSentMail BaseZip

  封裝了郵件傳送和壓縮報告方法

Log Report

log為系統執行生成日誌目錄

report為測試完成後報告生成目錄

PageObject

此目錄為頁面封裝,通常在頁面有調整時,只需調整此目錄下的方法,不許逐條修改用例

TestSuite

此目錄為測試用例集合

Tools

此目錄中則是一些小工具,比如weditor支援編寫指令碼時的元素定位

 

未來展望

本框架為綜合性測試框架設計思路,初步設想整合介面測試,效能測試,ui自動化測試
1 介面測試利用request第三方庫,效能測試利用locust框架,也基於request庫,這 樣同一套請求,既可以滿足於介面測試也可滿足於效能測試。
2 UI自動化分web和移動端,思路全部基於PageObjects進行頁面分層測試,便於優化 維護用例
Android端使用開源專案openatx的uiautomator2作為底層呼叫,區別與appium和macaca 的本地服務啟動,通過手機端的agent代理,實現快速的指令碼響應,而不需要繁瑣的服務啟動
IOS端也將使用openatx的facebook-wda作為底層呼叫,同樣通過在ISO真機上安裝 WebDriverAgent代理,來執行指令碼
web端則使用selenium作為底層操作web頁面元素
3 除效能測試外,介面和UI自動化測試全部可基於pytest單元測試框架進行設計,pytest 框架支援pytest的所有外掛,包括失敗重試,重複執行,用例排序,測試報告allure,用例 併發等

 

專案地址:

 https://github.com/Grandlulu/GeneralAutoTest

 

歡迎轉載與共享