现在不管是大小公司多少都会有一些软件性能问题,因为性能这个事情本身就不是绝对的,伴随着性能事故的发生,现在有些公司对于性能测试岗位的人才招聘比较看重的。

1.什么是线上全链路性能测试?

基于真实的用户场景,实际线上环境,按照既定流量,对各个业务链路进行压力测试的过程。

2.为什么需要全链路测试?

只在系统内部做单元或者逻辑测试只能测试本系统内是否存在问题(当然测试是不能发现所有问题的),并不能知道整个链路是否有功能或者性能上的问题。所以我们需要跳出系统对整个链路进行测试,防止在大促的时候出现问题。

3.传统压测和全链路压测有啥区别呢?

全链路压测平台架构图 全链路测试 解决方案_运维

4.如何落地生产全链路压测?

1、链路梳理

现在大多数企业都是采用微服务架构来设计系统,且业务场景多样化,导致了系统架构异常复杂。

要覆盖所有压测范围内的场景,就需要对涉及的所有应用及其调用关系进行梳理。目前业内还没有较好的链路梳理工具,导致这个过程需要人肉来梳理,耗时且费力。

2、数据隔离

生产全链路压测最重要的一点是避免对生产数据造成污染。业内常见的做法有如下两点:

压测数据写入正式库表,然后通过特殊的字段进行清理(业务改造成本大,清理风险高,耗时久);

采用影子库表,压测流量数据进行影子库表,在不对生产数据造成污染的情况下进行压测;

3、避免业务侵入

在全链路压测落地过程中,有一点必须考虑到的是业务部门的接受能力。如果要通过技术框架改造或者采用数据标记的方式来实现,势必会对生产业务造成一定影响(要改造是需要大量资源和时间的)。

4、性能定位分析

全链路压测是在生产环境进行,压测过程中,除了要防止数据污染,完善的监控体系和实时的可视化链路追踪也是很重要的一点。

不同企业在监控体系方面的建设都不一样,要进行全面详细的流量评估,需要有完善的监控平台来进行各维度的数据采集和展示。

在整个压测链路中,实时的可视化链路追踪能实时地观察到每个调用链路的具体信息,对问题的快速发现和定位有重大的帮助。

还要考虑到不把生产服务压挂。因此需要一套完整的机制来保证,压测在正常实施的同时,不对生产服务应用造成影响。