性能测试介绍

2024-09-09 18:04
文章标签 介绍 性能 测试

本文主要是介绍性能测试介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。

为什么要进行性能测试

通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。

发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题。通过检测性能瓶颈,可以找到影响系统性能的原因,并针对性地进行优化和调整。

评估系统能力:性能测试可以提供有关系统在不同负载条件下的性能数据,包括响应时间、吞吐量和资源利用率等指标。这些数据可以帮助开发人员、运维人员和决策者评估系统的能力,确定系统的性能边界,并制定相应的策略和决策。

优化系统性能:通过性能测试,可以发现系统存在的性能问题,并优化系统的性能。通过调整配置、优化代码和使用合适的技术方案,可以提高系统的性能,提供更好的用户体验。

检验系统可靠性:性能测试不仅可以评估系统的性能,还可以测试系统在长时间运行、高负载和异常条件下的稳定性和可靠性。通过模拟实际使用场景,可以检验系统是否能够处理意外情况和异常情况,并找出潜在的问题。

综上所述,进行性能测试有助于发现系统性能瓶颈,评估系统能力,优化系统性能,检验系统可靠性,并提供良好的用户体验。这些优点可以帮助保障系统的稳定性和性能,并满足用户和客户的需求。

性能测试的应用场景

在开展性能测试之前,需要有一个明确的业务场景。比如如下场景:
双十一、618 即将到来,超过 x 千万的用户会同时下单。

微博明星公开恋情。

12306 抢票。

以上的场景都有一个共同特点,是在某个瞬间,来自用户的请求信息达到了远远超出平日正常使用的峰值。

当然了,除了以上的场景,日常的性能测试,也需要拉通业务,产品,确定产品的用户量,根据这些信息制定合理的用户数、并发数、响应时间等等。

如果是完全新上线的产品,在第一次发布的时候,会主要参考竞品的数据指标,制定性能测试计划。

性能测试的价值

性能测试的价值除了上述保证产品上线之后能正常使用之外,还有一个非常重要的因素,就是降本增效。

因为服务器的价格是非常昂贵的。在能满足需求的情况下,能少买一台服务器,都是在替老板省钱。

性能省钱公式:良好的容量规划能⼒ + 性能调优能⼒ = 为老板省钱

图片

学习性能测试的价值体现

性能测试能力是测开工程师精华加分项。

图片

性能测试知识体系

性能测试知识体系主要分为四大模块:

图片

性能调优是整个性能测试过程中最难的一个环节,除了要掌握以上的知识之外,还需要具备非常强的代码基础以及非常丰富的项目经验。所以基本上能做调优的测试,都是在资深专家以上的级别。

性能测试压力曲线模型

图片

这张图是一张非常经典的和测试相关的图片,叫做性能压⼒曲线图。

曲线图关键点介绍:

横轴:并发的用户数,从左到右表现了 Number of Concurrent Users(并发用户数)的不断增长。

纵轴:分别有三条曲线

Utilization(资源的利用情况,包括硬件资源和软件资源)

Throughput(吞吐量,这里是指每秒事务数)

Response Time(响应时间)

区域:曲线图主要分为 3 个区域,分别是:

Light Load (轻压力区)

Heavy Load (重压力区)

Buckle Zone(弃忍区)

纵轴的三条曲线,每条曲线都是在性能测试过程中重点关注的信息:

利用率曲线(绿色):并发用户数-资源利用情况曲线

吞吐量曲线(紫色):并发用户数-吞吐量曲线

平均响应时间(蓝色):并发用户数-响应时间曲线

而在随着用户数不停增大,很明显的可以看到图中有两个拐点:

第一个拐点:The Optimum Number of Concurrent Users(最佳并发用户数),在 Light Load 和 Heavy Load 两个区域交界处的并发用户数。代表最优并发用户数:既不会造成资源的浪费,也可以满足现有的需求

第一个拐点到第二个拐点之间:The Maximum Number of Concurrent Users(最大并发用户数),在 Heavy Load 和 Buckle Zone 两个区域交界处的并发用户数

平均响应时间会越来越高,而平均响应时间会直接影响到用户的使用体验。

吞吐量和利用率曲线相较平稳。

第二个拐点:代表系统能承载的最大的并发用户数。一旦超过这个并发,代表服务器需要进行扩容。

过程分析:

阶段 1 轻压力区:随着并发用户数的增长,资源使用率和吞吐量(TPS)会相应的增长,但是响应时间(RT)基本平稳,小幅递增;

阶段 2 重压力区:当并发用户数增长到一定值后,资源利用趋于饱和,吞吐量(TPS)增长明显放缓甚至停止增长,而响应时间(RT)却进一步增大。

阶段 3 弃忍区:如果并发用户数继续增长,软硬件资源占用继续维持在饱和状态(过饱和),但是吞吐量(TPS)开始下降,响应时间(RT)急剧递增。

综上所述,当系统的负载等于最佳并发用户数时,系统的整体效率最高,没有资源被浪费,用户也不需要等待;当系统负载处于最佳并发用户数和最大并发用户数之间时,系统可以继续工作,但是用户的等待时间延长,满意度开始降低,并且如果负载一直持续,将最终会导致有些用户无法忍受而放弃;当系统负载大于最大并发用户数时,将注定会导致某些用户无法忍受超长的响应时间而放弃。

所以性能测试的数据尽量保持在 CPU 利用率足够高,整个系统的吞吐负载可控。

总结

什么是性能测试

为什么要进行性能测试

性能测试压力曲线模型

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走: 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

 

这篇关于性能测试介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1151887

相关文章

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Java慢查询排查与性能调优完整实战指南

《Java慢查询排查与性能调优完整实战指南》Java调优是一个广泛的话题,它涵盖了代码优化、内存管理、并发处理等多个方面,:本文主要介绍Java慢查询排查与性能调优的相关资料,文中通过代码介绍的非... 目录1. 事故全景:从告警到定位1.1 事故时间线1.2 关键指标异常1.3 排查工具链2. 深度剖析:

深入解析Java NIO在高并发场景下的性能优化实践指南

《深入解析JavaNIO在高并发场景下的性能优化实践指南》随着互联网业务不断演进,对高并发、低延时网络服务的需求日益增长,本文将深入解析JavaNIO在高并发场景下的性能优化方法,希望对大家有所帮助... 目录简介一、技术背景与应用场景二、核心原理深入分析2.1 Selector多路复用2.2 Buffer

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤