共计 2356 个字符,预计需要花费 6 分钟才能阅读完成。
整装待发 QTA UI 自动化测试框架迎来大更新
QTA 是什么
QTA 是一个跨平台的测试自动化工具,适用于后台、原生或混合型客户端应用的测试。在腾讯内部,QTA 是腾讯元老级的自动化测试项目,从研发至今已走过 8 个年头,工具的能力也从一开始仅支持 Windows 端的 UI 自动化测试,现在扩展到 Android、iOS、Web、后台、云服务的测试自动化。QTA 也是腾讯内部使用最为广泛的自动化测试框架,包括 PCQQ、手机 QQ、空间、音乐、腾讯云等产品测试的自动化,目前都是使用 QTA 的方案。
在腾讯开源的历史中,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 自动化测试。
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 团队提出改进建议,一同建设更加好用的自动化测试工具!