"UI自动化测试稳定与效率提升之美"
UI自动化测试是软件开发过程中的重要环节,旨在确保用户界面(UI)的功能正确性和一致性。在2020年的QECon全球软件质量&效能大会上,腾讯云游戏测试负责人方李志探讨了如何在UI自动化测试中实现稳定性和效率的平衡。他分享了WeTest自动化测试框架的设计理念和实践,以应对UI自动化测试中常见的挑战。
UI自动化测试的目标是实现“跨”和“易”:跨平台、跨设备、跨引擎,以及易阅读、易扩展和易维护。然而,实际操作中,UI自动化测试面临诸多问题,如UI对象识别困难、UI布局频繁变化、驱动方式切换不顺畅、业务逻辑变化、弹窗干扰、软件被切到后台等,这些都会增加脚本维护成本。
方李志介绍了WeTestUI自动化测试框架的稳定机制和效率提升措施。首先,针对控件识别问题,框架采用了算法优化,如使用相对路径查找和关键属性查找,以应对对象层级和属性的变化。同时,通过缓存机制(如Win32API和测试桩)来加速UI对象的再次查找。其次,针对图像识别的难题,特别是酷炫特效、艺术字体等,框架进行了传统算法优化,包括降低分辨率、色阶,采用模板匹配优先等方法,以提高识别速度。此外,对于特殊识别模块,如透明、文字、动画等,框架提供了特定的处理策略。
测试框架的结构设计也是关键。它包括框架接口层、对象库、UI对象识别和操作、执行框架、测试框架、用户脚本、执行调度以及面板层。这种分层设计有利于模块化,便于维护和扩展。分布式调度的引入进一步提高了测试的并发能力和效率。
通过这些技术手段,WeTest能够帮助没有代码能力的外包团队在8~10小时内完成对游戏Top300的适配自动化测试,展示了UI自动化测试的稳定与效率平衡。冒烟测试可以在短时间内生成报告,而Docker的性能优化和中文图像识别率的提升也得到了解决。
UI自动化测试稳定与效率提升的关键在于适应性强、识别准确和维护简便的测试框架设计,结合算法优化、缓存机制和分布式调度等技术,能够在保证测试覆盖率的同时,降低维护成本,提高测试效率。这对于持续交付和质量管理有着重要意义。