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

QTA是什麼git

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

在騰訊開源的歷史中,QTA的「輩分」也很高,於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


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

QTA的優點優化

UI自動化的ROI問題這一業界共識的難題——除了可測性,UI測試自動化工具自己設計和使用自己也十分有挑戰,許多同行由於這些問題,放棄了或抵觸使用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內執行完成。

(QT4A的演示Demo)

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

(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完善了使用和設計文檔。

後續的計劃

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

長期來看,QTA團隊正在研究AI和算法的方式來加強自動化的能力和下降自動化維護的成本,提高工具自我迭代的能力,但願逐步優化後開源。

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

此外,針對開源研發流程,QTA團隊也於近期作了一次梳理。新的研發模式,讓社區版的QTA和騰訊內部的QTA版本在代碼管理上清晰、流暢,這有助於讓內部的新特性可以更快地同步到開源社區的代碼庫中,來自開源社區貢獻者的代碼也可以順利合入。在開源社區的維護上,伴隨着騰訊業務團隊上雲節奏的加快,QTA開發和維護團隊在不斷壯大,他們將一同爲外部開源用戶提供支持。歡迎你們經過Github Issue和QQ羣向QTA團隊提出改進建議,一同建設更加好用的自動化測試工具!
相關文章
相關標籤/搜索