性能测试(3)基础之 常见的测试策略

什么是性能测试:性能测试就是利用测试工具或者代码对系统的相关性能指标进行的测试,用来对服务器和系统性能的评估。
简单来说就是利用自动化的测试工具,通过模拟大量的终端用户以产生多种正常,峰值以及异常负载条件来对服务系统的各项性能进行测试
评估方式:使用性能指标进行评估(响应时间,TPS,并发用户数, 服务器资源占用率)
评估方向:硬件、架构设计、中间件、数据库、代码、操作系统、算法
中间件:指系统与系统之间连接的组件,包括tomcat,nginx,redis等
 

性能测试的目的
1.评估系统的能力:通过测试,可以获取系统在不同负载条件下的响应时间、吞吐量等关键性能指标,从而判断系统是否能够满足预期的性能需求。这有助于在系统部署前识别可能存在的性能瓶颈,确保系统在实际运行中能够稳定、高效地处理各种业务请求。
2.识别体系中的弱点:性能测试可以揭示系统在特定场景下的性能缺陷,如内存泄漏、资源争用等问题。通过对这些弱点的分析,开发人员可以针对性地进行优化,提升系统的整体性能。
3.系统调优:性能测试结果为系统调优提供了依据。开发人员可以根据测试结果调整系统配置、优化算法和数据结构等,以改善系统的性能表现。此外,通过反复运行测试并验证调整效果,可以确保系统性能得到持续改进。
4.检测软件中的问题:长时间的性能测试可能会暴露程序中隐含的问题或冲突,如内存泄漏导致的程序崩溃等。这些问题在正常的使用场景下可能难以发现,但通过性能测试可以有效地揭示并修复。
5.验证稳定性和可靠性:在生产负荷下执行一定时间的测试,可以评估系统的稳定性和可靠性是否满足要求。这有助于确保系统在实际运行环境中能够长时间稳定地提供服务,避免因性能问题导致的服务中断或数据丢失。
 

 性能测试注意事项:

1.性能测试应该尽早的进行,  越早越容易发现并修复问题

2.性能测试需要团队的支持,  性能的优化需要开发部门,运维以及相关部门的合作

3.性能测试需要独立的测试环境, 性能测试的环境要求更严格,需要独立的网络和硬件要求,来保证被测试系统是独立可控的

4.测试前定义明确的测试目标, 性能测试的执行成本太高为了确保性能测试执行的有效性,在初期应该确定测试的目标以及相应的性能指标

 
常见性能测试策略

 

基准测试:
狭义上讲:也是单用户测试,测试环境确定以后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标。(进行基础的数据采集)
基准测试数据的用途:
这种测试的目的在于衡量性能测试环境是否异常,验证脚本和参数的正确性,以及获取系统处理事物的性能数据。
为多用户并发测试和综合场景测试等性能分析提供参考依据
识别系统或环境的配置变更对性能响应带来的影响
为系统优化前后的性能提升/下降提供参考指标

 

并发测试;
通过模拟用户并发访问,测试多用户同时访问同一应用,模块或数据,观察系统是否存在问题。
并发测试的目的,是为了验证服务器在高并发下的处理性能。
通过模拟模拟用户数,发送并发请求。

负载测试
负载测试就是指,对服务器进行负载的测试。
负载:服务器挂的用户越多,负载就越高。就是指服务器挂的用户数量。
进行负载测试时,需要逐步增加用户数,来逐渐增加服务器的负载,从而验证服务器的性能变化曲线,
找到拐点,从而才能分析性能采集的数据,进行性能优化 

增加用户的时间频率: 上个截图中,每5分钟增加1个。根据自己的性能测试时间,自由执行。(可以5
分钟,实际情况根据项目决定)
最大用户数量: 自己估算,一般进行性能负载测试之前,快速设置10个、100个、1000个,来查看性能
的变化,然后估算一个性能区间,然后再进行负载测试。
下图中的服务器性能指标,是指服务器处理请求的数据量,也就是TPS。

 

稳定性测试也叫可靠性测试
是指:在CPU不超过60%,内存也不超过60%的情况下,进行性能测试。或者说在系统加载一定业务压力的情况下,使系统运行一段时间后看是否出现问题
目的:验证服务器在稳定运行时,会不会出现性能问题。
稳定测试需要在服务器稳定运行的状况下,来产生未来需要的数据量,来验证服务器产生未来的数据量
后,会不会产生的问题。
例如:未来淘宝双十一活动时,预计订单量达到20亿。那么我们需要模拟一天产生20亿订单,来验证服
务器是否会出现问题。同时还需要保证服务器运行的资源不超过规定。
稳定性测试时间:一般1天,七天,少部分项目,甚至1个月。 
压力测试
压力测试:系统达到了一定的饱和程度,此时系统处理业务的能力,系统是否会出现问题
主要区别是,要模拟服务器在高压力的情况下的响应数据,处理请求的能力。
目的:验证服务器在高压会不会崩溃

 
容量测试
容量测试,主要是对服务器的能够容纳的用户数、连接数等容量数据指标数据进行测试。
例如:假如服务器能够支撑10000个用户在线活跃,那么我们需要,模拟10000个用户在线验证是否支
持10000个用户。
或者如果不知道最大用户数是多少,那么不断增加用户数,来查看最大的用户数容量。 
 
 

 

最后,关于性能测试的一些碎碎念

测试类型

由于测试目标的不同,性能测试可能存在很多种形式。

比如明确了解日访问量和巅峰访问量,测试服务器是否能够承受响应压力的测试。

比如用于探测系统负载极限和性能拐点的测试。

比如衡量系统在高负载情况下,长时间运行是否稳定的测试。

这许多种形式我们暂且不做讨论,不过所有以上测试的基础都是它 -- “并发测试”。

制造并发,是性能测试的基本实现办法。

posted @ 2024-03-15 10:13  越长大越孤单哦  阅读(89)  评论(0编辑  收藏  举报