全链路压测需要如何开展?

现在性能测试的趋势是全链路压测吗?全链路压测需要如何开展?需要怎样支持全链路压测?测试需要在其中提供什么样的价值?

做全链路压测之前,需要了解项目背景,为啥需要做全链路压测?是因为现在的服务规模、调用链路、架构设计过于复杂和庞大,测试环境已经无法模拟真实用户访问场景的压测,必须要在线上做压测,所以,才有了基于线上环境的全链路压测。如果应用规划很小,独立的压测环境完全可以模拟真实场景,就完全没有必要在线上生产场景搞全链路压测。

      全链路压测要实现功能主要有:数据构造、压测隔离、链路治理、任务调度、压测熔断、压测引擎、压测监控等,其中最核心的是:数据构造、压测隔离、链路治理

       数据构造(压测数据)主要包括基础数据和链路数据两种

1)基础数据:包括业务运行所需的库表和数据,例如:用户、商品、优惠券、订单等,基础数据的规模通常需要与实际业务数据在量级上保持一致;

基础数据的准备方式通常有直接构造和数据迁移两种:

a)直接构造:直接根据业务规则构造出来,一般用在少量数据的准备,例如联调阶段的数据构造;b)数据迁移:对线上数据做清洗、采样、偏移后迁移到影子库表,数据完备性好,仿真度高,省时省力。

2)链路数据:包括需要压测的接口和多样化的接口参数集合,接口请求的参数集合是基于基础数据生成的。

压测隔离

在生产环境进行全链路压测,与测试环境压测最大的不同在于,生产环境压测要保证压测行为安全且可控,压测数据不能污染正常的业务数据,不会影响用户的正常使用。最核心的一点是:压测数据的隔离。而针对压测数据隔离,业界有很多解决方案,常见的有影子表,影子库以及数据偏移。

链路治理

梳理清楚端到端的请求链路、技术架构、分层结构、模块划分,以及RPC、消息、缓存、数据库等中间件的使用情况,就可以进一步分析潜在的瓶颈点,比如容量不足、日志资源耗尽、缓存击穿、缓存热点、数据库连接池耗尽、线程池资源耗尽、触发限流、消费延迟、GC、慢SQL、大对象等,并针对性的增加监控指标、制定应急预案。

全链路压测涉及的环节很多,需要RD支持的工作包括:

数据隔离:需要RD改代码以实现对压测请求的标记,从而写入影子库表实现数据隔离;链路治理:需要和RD沟通,梳理调用链路

QA 可以做包括数据构造、任务调度、压测熔断、压测引擎、压测监控等。

你在测试过程中有遇到什么问题呢?欢迎VX添加Test_Club与我沟通交流。

答测友问:请展开讲下全链路压测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值