【业务在线】浅谈传统性能测试与全链路性能测试

首页    公司动态    【业务在线】浅谈传统性能测试与全链路性能测试

    “双十一”来临,对于各大电商来说,今年却少了很多大考来临前的紧张感。这固然与预热、分流等销售策略有关系,但让电商们更有底气的是近些年全链路压测技术的成熟,使得系统越来越健壮、越来越稳定,如果说前者是预防,那么后者就是保障。

       目前市场中,性能测试主要存在两种模式,一种是传统性能测试,一种是全链路性能测试。我在这里就两种模式进行简单的对比与分析,便于大家对于两者有个更为直观的了解。

      传统性能测试目前还是主流的测试手段,它是基于目标分析、场景分析的模式,目的是解决被测目标应用级的性能瓶颈;全链路性能测试,起始于电商平台,是基于流量回放的模式,目的是解决整体架构级的性能瓶颈、更准确的评估容量、抵御大流量冲击。

      从以上的概念和测试目的上可以看出,两者并不是非A即B的关系。全链路性能测试无法取代传统性能测试,传统性能测试是全链路测试的前提条件。

      传统模式更适合系统开发的新建或大规模改造阶段,全链路模式则更适合系统的运维阶段。前面我们提过,全链路测试起始于电商,最大的目的就是为了抵抗“双十一”的流量冲击,他们更关注目前系统所能支撑的容量,是否可以通过大考,所以全链路更注重“真实”:真实的测试环境(生产环境即为测试环境)、真实的测试数据(生产数据的流量回放),一切都是为了更准确的进行容量评估。当然,仅有事先的容量评估是远远不够的,还要配以如自动扩展、限流、熔断等防御手段,用于防止意外的发生。所以全链路测试更像是一种抵抗流量冲击的解决方案。

       我从事金融系统的测试行业,主要的测试对象是银行的系统。那么银行系统是否适合全链路压测呢?

      我们看适用全链路压测的几个条件:

Ø  生产场景中存在超大的、集中的流量场景,规模起码为千万级甚至是亿级;

Ø  全链路测试是一种针对整体架构的解决方案,无论是自动扩展还是熔断等机制都需要上云进行容器化;

Ø  需要在生产中进行测试或者与生产资源配比完全相同的测试环境。

由以上三点进行分析:

       绝大多数的银行并不存在如此集中的、大流量的生产场景,传统测试的模式足以支撑系统性能测试的需求;

       目前银行的系统整体架构相对简单,大多是虚拟化的负载架构,真正的微服务很少。有一些银行确实已经开始尝试对各别的外围系统进行云化、容器化,但对核心系统容器化还有很长的路要走;各系统研发也多是外包的模式,整体架构变更不仅难度大、成本高,而且由于涉及敏感信息的安全,未来也只能采取混合云的模式,整体规划尤为重要,需要统一协调,拥有稳定的自主研发团队更为可靠;

       银行涉及民生,民生无小事,安全稳定为首要任务,任何涉及安全隐患的操作都需要慎之又慎,在生产环境做测试,肯定是比较危险的行为,而搭建一套与生产资源完全一致的测试环境耗费太高,产出投入比低。

       综上来看,绝大多数的银行系统是不适合做全链路测试的。

       在这篇文章中,我没有对传统性能测试和全链路性能测试的实施细节展开介绍,感兴趣的朋友可去网上查找相关资料。

       文中相关内容仅代表个人观点,若有不成熟之处,欢迎大家指正。

2021年11月12日 11:05