性能测试概述

为什么要进行性能测试:
多个客户端同时访问造成压力
●Web应用服务器
●应用服务器
●数据库
●网络
在这里插入图片描述

所以性能测试要在生产之前,把相应的压力监测到并还原
性能测试的概念
1.软件系统的性能测试是一个很大的概念, 覆盖面非常广泛。
对软件系统而言,包括执行效率、资源占用、系统稳定性、安全性、兼容性、可靠性、可扩展性等。(在高并发的情况下,是否还能像一个人两个人访问一样顺畅)

2.性能测试是描述测试对象与性能相关的特征并对其进行评价而实施和执行的一类测试
主要通过自动化的测试工具模拟多种正常、峰值以及异常负载条件下来对系统的各项性能指标进行测试。

性能测试概述
性能测试通常包含以下方面的内容
评估生产准备状态
评估性能判定标准
比较多个不同系统或同一系统不同配置之间的性能特征
找出导致性能问题的源头
帮助进行系统性能调优
确定吞吐量水平(tps这样的指标)

性能测试的核心活动
◆确定测试环境
物理环境、生产环境、测试团队可利用的工具和资源.

◆确定性能验收标准
确定响应时间(在很大的并发的情况下访问系统,我们能够在多久的时间内实时返回)、吞吐量(每秒能够处理的任务数 tps)、资料利用总目标和限制(cpu,内存的利用状态)。

◆计划和设计测试
确定关键场景;(功能测试中偏向于正常场景,性能测试的话则是多并发,多个用户访问)
确定典型用户的可变性,以及如何模拟这些变化。(是一起操作不断操作,还是一部分操作一部分不操作等)
确定测试数据(要多少用户)
确定需要收集的度量值(响应时间,tps,吞吐量等)

◆配置测试环境
随着需要测试的功能和组件的完善,逐步为每个策略准备执行所需的测试环境、工具以及资源。

◆实现测试设计
根据测试设计逐步展开性能测试

◆执行测试
执行和监控测试

◆分析结果、报告以及重复测试
整合并共享结果数据

性能测试目标
◆评估软件发布准备
预测或者估计应用软件在实际生产方面的特性特征,并且基于这.些预测来评估是否需要强调性能因素。
提供相关数据,反映用户可能会对系统性能特征产生哪些不满意
提供数据帮助预测,由于可伸缩原因和稳定性问题,或者由于用户不满意应用软件的相应时间所导致的收入损失或者品牌可信度降低。

性能测试介绍
评估基础结构是否恰当:
评估当前容量是否足够
确定稳定性的可接受范围
确定应用软件基础结构的容量
比较不同的系统配置,确定哪些配置可以在实际应用和商业需求之间达到最佳效果
确定应用软件在预计的资源使用限制范围内已经显示出来最佳性能特征。

评估已开发软件的性能是否满足要求:
在对应软件进行修改以前和以后,都需要确定应用软件已经获得了满意的性能特征
提供应用软件当前所具有的性能特征与所能达到的最佳性能特征之间的比较。

提高性能调整效率:
分析应用软件的各种不同负载水平下的运行状态,确定应用软件的瓶颈
在进行生产发布之前,提供与产品的运行速度、可伸缩性和稳定性相关的信息,这样可以使得相关利益方能够对是否或者何时调整系统作出更加明智的决定。

性能测试的种类
◆负载测试
◆压力测试
◆容量测试
◆其他:
配置测试
并发测试
可靠性测试
稳定性测试…

◆性能测试是确定或者有效验证了系统或者应用软件在测试环境下的速度、可伸缩性以及(或者)稳定性等各种特性。
◆性能是指足以满足项目或者产品的性能目标的相应时间、吞吐量以及资源利用率等(产出即评价的指标这些)
◆性能测试是一个总体的概念,其他的性格相关的测试都是性能测试的子范畴。

负载测试

1.侧重于确定当前测试中的系统或者应用软件在工作负载条件下,或者在实际运行阶段加载预期的容量时,系统或者应用软件所具备的相关性能特性。(要达到五万并发,并且响应时间要在0.5s以内,所以就在这个条件下去看相应的并发下系统的性能指标比如tps,时间,cpu等)

2.通过逐步证据系统负载,测试系统性能的变化,并最终确定在满足性能指标下,系统所能够承受的最大负载量。(用户的体验时间,不管做什么操作,响应时间不能超过0.5s,给我一个人数的负载量指标。所以就不断尝试加压,达到系统能够负载的最大)

3.负载测试是通过逐步加压的方式来确定系统的处理能力,确定系统能够承受的各项阀值。

压力测试
1.确定当系统或者应用软件在某些超过实际运行阶段所预期的条件下时所具备的性能特性。(假如在负载中已经确定了系统能够承受的最大是8500,那么现在就从5800开始不断加压,让某些资源达到饱和甚至失效 ,来看看当前性能指标是什么情况)
2.通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并获得系统能提供最大的服务基本。
3.压力测试是逐步增加负载,使系统某些资源达到饱和甚至失效的测试。

容量测试
1.在满足性能目标的前提下,系统能够最大处理的最大会话能力,确定系统可处理同时在线的最大用户数。
2.容量测试确定了服务器的极限失效点,同时监控在各种不同负载和流量模式水平下的性能结果。(在满足性能目标的前提下,能够达到的 最大处理数,只要系统不崩溃,还能正常反馈,能达到这么大的并发就行,慢点就慢点。比如内存cpu已经到99.9%,这到候是10000,但是还能正常跑,如果加到10050,崩掉了,那这个10000就是容量测试的结果以及相应的性能指标 )

配置测试(调整jdk,软件参数,不调整代码)
通过对被测试软件的软硬件配置的测试,找到系统各项资源的最优分配原则。

并发测试
测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题,几乎所有的性能测试都会涉及到一些并发测试

可靠性测试
通过给系统加载一 定的业务压力的情况下,运行一-段时间,检查系统是否稳定。通常可以测试出系统是否有内存泄漏等问题。(不停的跑)

稳定性测试
在复杂多变的环境下系统所能够提供的总可靠性、健壮性、功
能和数据完整性、有效性以及响应的连续性。(比如做一个不停服升级,系统是否稳定,客户是否能操作)

核心性能测试的活动:
在这里插入图片描述在这里插入图片描述在这里插入图片描述核心性能测试活动
◆活动1:确定测试环境

确定物理环境、生产环境以及测试团队可利用的工具和资源。
物理环境包括:硬件、软件以及网络配置。

在测试开始时就对整个测试环境有一个全面的了解,可以使得测试设计和计划更加有效,并且有利于在项目初期就确定测试中的复杂问题。

◆活动2:确定性能测试验收标准(产品提供,还有经验设计来确定验收标准)
确定响应时间、吞吐量、资源利用总目标以及限制。

一般来说,响应时间是用户关系的焦点,吞吐量是业务关系的焦点,资源利用则是系统关系的焦点。
确定项目成功的标准,这个标准可能并不包含在上面所确定的总目标和限制之中;例如:利用性能测试来评估,怎样组合相关的配置才可以带来最佳性能特征。(我们能够接受的响应时间,比如页面1.2s以内,app0.5s之内)

◆活动3:计划和设计测试
确定关键场景
(保证5000并发,同时进入同时点击,要求持续多少分钟)
确定典型用户的可变性,以及如何模拟这种可变性;
确定测试数据.
将这些信息整合到一个或者多个系统使用情况模型中,以进行实现、执行和分析。
(场景的组合,一部分秒杀,一部分在做别的操作)

◆活动4:配置测试环境
随着需要测试的功能和组件的完善,逐步为每个策略准备执行所需要的测试环境、工具以及资源
确保测试环境已经配置妥当,可以进行资源监控

◆活动5:实现测试设计
根据测试设计逐步展开性能测试

◆活动6:执行测试
执行和监控测试
保证测试、测试数据以及结果收集有效
监控测试和测试环境,确保进行有效的测试以保障结果分析的正确性

◆活动7:分析结果、报告以及重复测试
整合并且共享结果数据,不仅要对单个数据进行分析,还要从一个功能交叉的测试团队角度来分析数据
如果所有度量都在可接受的范围内,没有违反任何预设阀值,并且收集到了所有需要的信息,就完成了基于特定配置的特定场下的测试
(前一次性能测试如果没有达到目标,可能需要重新进行测试,这个时候就不需要前面几步,需要后面的测试执行即可。)

发布了82 篇原创文章 · 获赞 7 · 访问量 4167

猜你喜欢

转载自blog.csdn.net/sunshine612/article/details/105453625