前言:
大概有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
歡迎轉載與共享