中汇公司利用Dynatrace打造可伸缩可调整的性能测试之路
2020-04-20周冉
周冉
交易系统的性能是体现交易业务能力的重要指标,如何确保交易系统能够满足大数据量的交易需求至关重要。对于交易系统来说,如果性能问题不能提早被发现,而是到了生产环节才被发现,代价将是非常惨痛的,轻则影响用户体验,重则会造成重大财务损失。因此,只有对交易系统的性能容量指标进行合理的评测,才能满足业务的长期发展。
中汇信息技术(上海)有限公司,是外汇交易中心旗下全资子公司,致力于为建立全球人民币和相关产品交易主平台和定价中心提供技术研发、运维和信息服务。公司的发展目标是确保交易中心的系统建设和开发,并且争取建设成为国内一流,具有国际影响力的本外币交易系统解决方案,行业标准和国家的重要基础设施的供应商。
据中汇信息技术测试部经理潘春媚介绍,通常来说,交易中心的性能测试主要关注用户在群体效应下系统的响应时间和资源使用的时间特性。性能测试的一个重要目标就是快速定位到工程级的问题,并解决回归问题。在飞速的业务发展中,中汇公司的性能测试在定位环节遇到了极大阻力。
壓在性能测试定位环节上的三座大山
首先,统计分析困难。在传统测试的性能分析中,通常依赖于日志。而交易中心业务量巨大、日志多,在这种数据量比较大的情况下,宏观数据分析统计非常困难,而且耗时很久,且过多的日志本身就会对系统的性能带来一定的影响。
第二,很多复杂的性能问题比较隐蔽,往往一个环节的问题会遮盖掉其他环节的问题。同时,基础设施问题的定位也很困难,因为硬件基础设施的性能问题,往往会表现为软件层面的性能问题,误导了性能问题的定位和分析。还有一些比较隐蔽的、复杂的资源限制和参数限制,也给性能问题定位增加了困难。
第三,偶发性问题难以复现。在性能测试过程中,偶发性问题,或者在某些条件下才出现的性能问题很难去复现,这也给性能问题的定位增加了很多困难。为了解决这些痛点,经过种种对比和评测,中汇公司选择了Dynatrace。
依靠数据和报表快速定位
Dynatrace的Hotspots提供了系统的请求链路和分布状况的相关数据,Purepath提供了执行的关键路径,Database提供了资源使用情况和数据库的情况,Service flow和Smartscape Topology则提供了更多信息。结合多维度的信息和相应的报表,可以帮助交易系统的性能测试由黑盒测试转向灰盒测试,大大提升了性能问题的分析和定位的效率和准确性。
“Dynatrace在解决性能问题定位方面给我们带来的好处是显而易见的。”潘春媚表示。首先,不需要日志的记录就可以直接定位分析问题,并且有详细的报表和详实的数据提供。其次,可以无需重现这些问题,直接在发现问题的场景来定位问题,大大提高了沟通的效率。Dynatrace提供的多维度数据和报表,还可以拓宽问题定位人员的思路,加快定位的效率。
在中汇公司,性能测试和功能测试团队使用同一套环境,白天做功能测试,晚上做性能测试。在进行比较复杂的业务场景测试,或者全链路的业务流性能测试时,往往会涉及到上下游很多系统,如果发现最下游的系统有性能问题时,以往都是性能测试团队陪着开发团队一遍遍地重现场景,帮助开发团队一个个进行排除,很多时候会工作到后半夜。
使用Dynatrace后,只需提供当时发现问题的数据给相关的上下游开发团队,通过数据分析来解决定位问题,而不再需要一遍遍地重现这些问题,极大提高了效率和准确性。从此,再也不用加班到后半夜!
性能测试不仅验证了业务需求,还验证了是否符合系统设计及测试设计。Dynatrace帮助中汇公司改进了性能测试的测试流程。性能测试是把复杂的用户行为,通过统计抽象,建立用户模型和测试模型,最终形成规律性的测试脚本。通过性能测试,分析测试产生的结果和数据,来验证系统是否符合业务需求,这就相当于性能测试设计,来源于业务需求和系统设计,同时最终服务于业务需求。
传统的性能测试往往只验证了系统是否符合业务需求,却忽略了系统设计。一些系统设计层面的问题,往往会遗漏到生产,成为生产问题暴露之后才被发现,这样的代价是非常惨痛的。利用Dynatrace提供的多维度的数据和专业的报表,可以去验证系统的负载和可靠性的设计,分布式的服务设计,调用链路、关键技术选型、安全设计等,检查系统是否符合当初的系统设计。同时通过这些数据,也能验证负载策略,测试脚本的正确性、有效性、依赖性、关联性以及参数化设计。也就是说,在Dynatrace的帮助下,性能测试除了验证业务需求之外,还可以检查系统是否符合当初的系统设计,以及是否符合当初做性能测试的时候的测试设计。如果发现系统设计层面的问题,将快速定位,让系统设计层面比较难发现的系统问题更早的被发现。此外,Dynatrace提供的多维度数据,能够帮助查看系统各部分资源占用的情况是否符合预期,为后续的调整提供了参考。
希望在应用领域深入合作
谈到未来的合作,潘春媚表示,希望利用Dynatrace帮助中汇公司持续改进测试质量,利用Dynatrace和自动化测试相结合,不断监控整个测试过程的数据,尽早发现潜在问题,提高缺陷预防的能力。此外,中汇公司还希望通过Dynatrace在新技术领域做更多的研究,持续改善软件质量。在后续条件成熟后,中汇公司希望把Dynatrace在测试环境中的使用经验和工作方式,推广到生产环境中去,利用Dynatrace监控生产环境,收集生产环境的数据,反向推动测试过程的改进,反向推动产品的设计。