整裝待發 QTA UI自動化測試框架迎來大更新

騰訊開源發表於2018-11-22

QTA是什麼

QTA是一個跨平臺的測試自動化工具,適用於後臺、原生或混合型客戶端應用的測試。在騰訊內部,QTA是騰訊元老級的自動化測試專案,從研發至今已走過8個年頭, 工具的能力也從一開始僅支援Windows端的UI自動化測試,現在擴充套件到Android、iOS、Web、後臺、雲服務的測試自動化。QTA也是騰訊內部使用最為廣泛的自動化測試框架,包括PCQQ、手機QQ、空間、音樂、騰訊雲等產品測試的自動化,目前都是使用Q他的方案。

在騰訊開源的歷史中,Q他的“輩分”也很高,於2016年開源的QTA,是騰訊最早期的開源專案之一,目前存放於三個Github倉庫下:

·QTAF(QTA Framework):

https://github.com/Tencent/QTAF

·QT4A(Quick Test for Android):

https://github.com/Tencent/QT4a

·QT4i(Quick Test for iOS):

https://github.com/Tencent/QT4a

整裝待發 QTA UI自動化測試框架迎來大更新

整裝待發 QTA UI自動化測試框架迎來大更新

QTAF (QTA Framework)是Q他的基礎框架,包括testbase和tuia模組,QT4A和QT4i分別是面向Android和iOS的UI測試自動化測試解決方案。

Q他的優勢

UI自動化的ROI問題這一業界共識的難題——除了可測性,UI測試自動化工具本身設計和使用本身也十分有挑戰,許多同行因為這些問題,放棄了或牴觸使用UI自動化測試。

QTA團隊在騰訊內部積累了豐富的實踐經驗,在眾多明星業務團隊的建設和運營下,形成了可持續執行的自動化測試流程,包括QQ、QQ空間、音視訊SDK、Now直播、企鵝電競、騰訊視訊、騰訊雲等產品專案。

對於目前已經開源的QT4A(Android自動化測試),目前在騰訊內部已經落地建設1.7w+的自動化指令碼。平均每天執行自動化用例2.9w+個,測試任務數700+個。為服務測試執行的需要,QTA團隊已經維護了500+的執行節點,並構建了750+個Android虛擬機器的叢集。對於QT4i(是iOS自動化測試這塊),目前已經累計用例數6k+,每週執行任務總數600+,平均每天執行3k+個測試用例。

其中,以應用深入的手機QQ產品為例:

AndroidQQ系統測試用例數有1000+,每天通過率基本穩定在90%以上,同時每天CI自動觸發BVT測試,產品無功能bug情況下,通過率基本為100%。除此之外,還有其他上線前驗證測試,Android QQ會員專案每天執行任務約為270個,大部分任務都在10min內執行完成。

整裝待發 QTA UI自動化測試框架迎來大更新整裝待發 QTA UI自動化測試框架迎來大更新

(QT4A的演示Demo)

iOS QQ功能測試用例數有200+,每天日常執行用例數600+,其中,每天CI自動觸發BVT測試,在產品無bug的情況下,通過率保證在95%以上。iOS QQ會員專案全部用例數300+,每天日常執行用例數500+,大部分任務都在30min內執行完成,平均每個任務需要約10個執行機節點的支援。

整裝待發 QTA UI自動化測試框架迎來大更新整裝待發 QTA UI自動化測試框架迎來大更新

(QT4i修改裝置名稱demo)

QTA在騰訊內部廣泛應用,也積累了不少經驗和成果,QTA團隊也希望這次開源的更新,能向業界分享自動化測試的方法論和實踐經驗;以這次開源為基礎,和業界同行一起分享和共同建設一個能在工程上真正落地使用的UI自動化測試工具。

重大版本更新

作為第一批開源的專案,在很長的一段時間內,

QTA團隊由於職能定位的原因,對開源專案的參與力度不夠。這次,騰訊公司組織架構調整,QTA團隊成為新成立雲與智慧產業事業群(CSIG)的一份子,後續QTA會以騰訊云為基礎,助力產業網際網路的客戶,為QTA開源帶來新的活力。

為此,QTA於進行了一次重大的開源版本更新,將內部已經在持續使用的新特性同步開源,包括:

·QTAF新增資源管理模組、測試計劃功能,讓QTA框架能更方便的和其他測試執行系統整合;

·QT4A支援了非root的版本,支援Android6以上的系統,支援64位App;

·QT4A優化了截圖效率,同時新增螢幕錄製的功能;

·QT4i優化模擬器Agent啟動方式,以及支援最新的iOS12和XCode10;

·QT4A和QT4i支援pip安裝,簡化安裝部署;

·QT4A和QT4i完善了使用和設計文件。

後續的計劃

在Q他的UI自動化測試的體系中,目前還有QT4W、QT4C和QT4Mac正在籌備開源,三者分別輸送了Web、Windows和Mac端的UI自動化測試能力。特別是QT4W——Web自動化測試的能力,同時提供QT4i和QT4A的自動化測試中支援Web能力的基礎,將很快與開發者面見面。針對社群反饋的最多的聲音——Python 3的相容性改進,QTA團隊也正在積極開發中。

長期來看,QTA團隊正在研究AI和演算法的方式來增強自動化的能力和降低自動化維護的成本,提升工具自我迭代的能力,希望逐步優化後開源。

另外還有一個可以關注的是,QTA正在和騰訊雲Tencent Hub(開發檔案儲存和DevOps工作流編排服務)團隊的合作中,將Q他的能力整合在Tencent Hub中,目前已經在聯調驗證階段,Q他的社群使用者,很快可以在騰訊雲上體驗QTA測試自動化的服務了。

此外,針對開源研發流程,QTA團隊也於近期做了一次梳理。新的研發模式,讓社群版的QTA和騰訊內部的QTA版本在程式碼管理上清晰、流暢,這有助於讓內部的新特效能夠更快地同步到開源社群的程式碼庫中,來自開源社群貢獻者的程式碼也能夠順利合入。在開源社群的維護上,伴隨著騰訊業務團隊上雲節奏的加快,QTA開發和維護團隊在不斷壯大,他們將一同為外部開源使用者提供支援。歡迎大家通過Github Issue和QQ群向QTA團隊提出改進建議,一同建設更加好用的自動化測試工具!


相關文章