性能测试&故障测试的流程及相关概念

压测相关名词解释

名词

解释

QPS

每秒内的请求数

TPS

每秒内的事务数

客户端

发起请求的一方

服务端

响应请求的一方

施压机

模拟客户端的机器

影子表

全链路压测过程中,用来与真实数据隔离的测试表,其表结构和正常表一样,但是表名必须加上前缀_shadow_用于标识该表是”影子表”。

压测时的数据隔离策略:https://km.sankuai.com/page/297522580 (影子表,及偏移规则)

数据隔离策略:

物理隔离:通过判断是否时压测流量,决定将数据写入真实表(真实流量时),还是影子表(为压测流量时)

逻辑隔离:通过数据偏移,比如落地压测用户数据时,将压测用户Id加一个比较大的偏移量,以保证压测数据和真实数据有不同的跨度区间。

一、性能测试

性能测试的前提

系统基础功能验证:只有在系统基础功能验证完成、系统趋于稳定的情况下,才会进行性能测试,否则进行性能测试是没有意义的。

1.测试计划阶段

测试计划阶段最重要的是分析用户场景,确定系统性能目标。

(1)确定测试领域

根据对项目背景,业务的了解,确定本次性能测试要解决的问题点;是测试系统能否满足实际运行时的需要,还是目前的系统在哪些方面制约系统性能的表现,或者,哪些系统因素导致系统无法跟上业务发展?确定测试领域,然后具体问题具体分析。

(2)用户场景剖析及测试数据剖析

根据对系统业务、用户活跃时间、访问频率、场景交互等各方面的分析,整理一个业务场景表。方便后续的性能测试环境的配置。然后结合业务的场景,来决定测试过程中的数据需求,便于测试人员提前解决数据需求问题。

(3)确定性能目标

前面已经确定了本次性能测试的应用领域,接下来就是针对具体的领域关注点,确定性能目标(指标);其中需要和其他业务部门进行沟通协商,以及结合当前系统的响应时间等数据,确定最终我们需要达到的响应时间和系统资源使用率等目标;

例如:①登录请求到登录成功的页面响应时间不能超过2秒;②报表审核提交的页面响应时间不能超过5秒;③文件的上传、下载页面响应时间不超过8秒;

(4)制定测试计划的实施时间

性能测试都是在真实的线上进行操作,所以选取的测试时间要尽可能少的受到线上流量的影响,尽可能提高测试结果的精准性。

2.测试准备阶段

(1)数据的准备

(2)场景的配置(quake)

3.测试执行与管理

在这个阶段,只需要按照之前已经设计好的业务场景、环境,部署环境,测试过程中监控资源的消耗、并记录执行结果即可。

4.测试分析

根据我们之前记录得到的测试结果(图表、曲线等),经过计算,与预定的性能指标进行对比,确定是否达到了我们需要的结果;如未达到,查看具体的瓶颈点,然后根据瓶颈点的具体数据,进行具体情况具体分析(影响性能的因素很多,这一点,可以根据经验和数据表现来判断分析),确定瓶颈是再数据库服务器、应用服务器抑或其他方面,然后针对性的进行优化等操作。

参考文章:https://www.cnblogs.com/imyalost/p/6854479.html

问题:

为什么要进行性能测试?

1.获取正常请求流量下,系统的各个性能指标:

这是最常见的性能测试目的,常规性能测试通常都有这个需求。在正常压力(无压力)流量下对系统进行性能测试,建立一个可度量的参考标准,为其他测试场景或者调优过程提供对比参考。

常用的性能测试指标包括:

服务响应相关的:平均响应时间,响应时间分布情况,失败率等

资源使用相关:CPU使用,内存,磁盘IO,网络IO等

2.获取系统能够承载的极限容量,以及获得系统的性能瓶颈

系统容量评估因为比较难自动化,所以通常这类需求频率会低一些,可能会周期性评估。通过“拐点法”进行性能测试,逐步增大系统的压力,直到性能指标不可接受或者出现了明显的拐点,从而找到系统的瓶颈点。需要注意的是,压测时的极限并发或者极限每秒处理请求数,一定是以在安全运维的性能标准下为前提。

3.测试系统稳定性

系统稳定性压测是要知道在各种情况下系统能否稳定运行。造成系统不稳定的情况有:

极限的每秒请求数

极限的并发数或连接数

突发流量高峰

长时间的压力流量

热点数据请求

差网络环境

下游模块慢返回、超时或故障假死等

4.性能测试辅助系统参数调整

需要配合研发,测试在不同系统参数或者部署方案下,系统性能情况的对比。

5.系统性能回归:

在版本升级时,通常需要对比新老版本的性能情况。

什么时候需要开展性能测试?

1.上线新模块/功能,且模块/功能对系统影正常运作影响大时,或者是重大功能的上线;

2.有线上促销活动的需求时:促销活动通常会导致系统流量翻好几十倍,通过性能测试可以得知系统是否足够支撑瞬间峰值流量,并为系统扩容提供依据;

3.线上服务需要扩容时;

4.性能调优后:评估性能调优的效果,进而决定是否还需要重新进行性能优化。

二、故障测试

问题:

1.什么是故障?系统不能按照预期提供服务的一种状态。

2.什么情况下要进行故障测试?

对故障的兜底方案的验证。故障场景下,系统处理方案的功能验证。(重在对已知事物的验证)

故障场景下系统处理机制是否存在欠缺(对未知的验证)

3.如何进行故障测试?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值