整装待发 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团队提出改进建议,一同建设更加好用的自动化测试工具!
相关文章
相关标签/搜索