【性能测试】第一节.性能测试基础

文章目录

  • 前言
  • 一、性能测试概述
  • 二、常见的性能测试指标
  •       2.1 并发
  •       2.2 响应时间
  •       2.3 事务
  •       2.4 点击率
  •       2.5 吞吐量
  •       2.6 资源利用率
  • 三、性能测试的分类
  •       3.1 一般性能测试
  •       3.2 负载测试
  •       3.3 压力测试
  •       3.4 稳定性测试
  • 总结


前言


一、性能测试概述

(1)概念 :为了发现系统性能问题或获取系统性能相关指标而进行的测试。
⼀般在真实环境、特定负载条件下,通过工具模拟实际软件系统的运行及其操作,同时监控性能各项 指标,最后对测试结果进行分析来确定系统的性能情况。

(2)常见的性能问题:

查询数据时间过长,网速很慢,服务器无响应,查询数据很长时间才显示列表

(3)举例说明:

以购物软件为例:
1)购物过程中页面突然无法打开,刷新后可以重新打开
2)双十一期间无法进入商品页面
3)页面加载时间过长,需要消耗用户大量的等待时间


二、常见的性能测试指标

2.1 并发

(1)并发数定义 :并发用户数。
  • 从业务层面看,并发用户数指的是实际使用系统的用户总数。
  • 从后端服务器层面看,指的是web服务器在一段时间内处理浏览器请求而建立的http连接数或生成的处理线程数

举例说明:
案例:一个已经投入运行的web系统,有5000名员工使用,最多同时有2500人使用,用户分别进行浏览页面、填写订单、提交订单、查询订单的操作。那么这个系统的业务并发用户数是2500,实际并发用户数是提交订单和查询订单操作的用户。


2.2 响应时间

(1)定义:

  • 应用系统从请求发出开始,到客户端接收到最后一个字节数据所消耗的时间。
  • 对于web系统而言,系统响应时间包含前端展现时间和系统响应时间。

(2)响应时间:

  • 前端展现时间: 页面渲染时间
  • 系统响应时间: 包含服务器、数据库、通讯网络等响应时间。

2.3 事务

1)事务是衡量系统处理能力的重要指标
2)事务通过数越高,性能越好

(这是相对的,因为不同的系统要求不同,有些事务比较复杂;如提交订单事务,需要新增订单数据、用户账户扣除金额、以及对商品的库存等进行修改)
3)每秒事务通过数(Transaction Per Second,简称TPS)


2.4 点击率

(1)定义:代表用户每秒向服务器提交的请求数,点击率越大,服务器的压力越大
(2)注意:不是鼠标的一次点击,一次点击可能有多个请求。


2.5 吞吐量

(1)定义

单位时间内处理的并发数,直接体现软件系统负载承受能力。吞吐量越高,系统承受的并发越多,性能越好。

(2)举例说明:
有AB两种场景。

A场景,有100个并发用户,每个用户每隔1秒发出一个请求。

B场景,有1000个并发用户,每个用户每隔10秒发送一个请求。

A和B场景的吞吐量相同都是每秒100个请求。

但是A场景思考时间短,所以A场景占用的系统资源更多。


2.6 资源利用率

(1)资源利用率定义
不同系统资源的使用情况。
包含CPU,内存,硬盘,网络等。

三、性能测试的分类

3.1 一般性能测试(基准测试)

基准测试(Benchmark Testing)又称单用户测试,主要用于监测被测系统在较低压力下的运行状况并记录相关数据。

当性能测试环境确定以后,通常选取业务模型中的重要业务做基准测试,对被测系统施加一定压力,从而获取被测系统在单用户运行情况下的各项性能指标,为多用户并发测试和混合场景测试等提供参考依据


3.2 负载测试

(1)定义:

负载测试(Load Testing)是性能测试的一种测试类型,用于评估被测系统在预期的不同负载下的行为。

负载测试关注系统处理不同负载的能力,这些负载可通过控制并发用户或者进程的数量来实现。进行负载测试时,通过对系统不断增加并发访问负载,监测系统性能的变化,直到系统的某项或多项性能指标达到安全临界值,最终确定在满足该安全临界值的性能指标下,系统所能承受的最大负载量。

简而言之,负载测试是通过逐步加载的方式来确定系统的处理能力。

(2)举例说明:

负载测试类似于举重运动,通过不断给运动员增加重量,确定运动员在其身体状况保持正常的情况下所能举起的最大重量。通过负载测试可以获取系统能够达到的峰值指标。


3.3 压力测试

(1)压力测试的定义

压力测试(Stress Testing)用于评估被测系统在高于预期、高于指定容量负载需求或低于最少需求资源的条件下的行为。

(2)压力测试关注点

压力测试关注被测系统处理超出预期或特定峰值负载的能力,也可以用于评估系统在资源匮乏时的处理能力,比如在可用的计算能力、带宽和内存资源不足的条件下系统的表现。


通过对被测系统进行压力测试,也能找出被测系统的性能拐点,获得系统所能提供的最大服务级别(系统所能承受的最大压力),评估系统在峰值负载或超出最大负载情况下的处理能力。压力测试主要用于性能诊断、性能调优和容量规划等场景。


压力测试和负载测试的区别?


压力测试与负载测试不同。

  • 负载测试是在保持性能指标要求的前提下测试系统能够承受的最大负载,
  • 而压力测试则是测试系统性能达到极限的状态。

举例说明:

例如,软件系统要求的响应时间为2秒。进行负载测试时发现,当访问量达到1万时,系统响应时间不超过2秒,而当访问量超过1万时,系统响应时间则会超过2秒,那么,在满足系统响应时间指标的前提下,该系统能够承受的最大访问量是1万。进行压力测试时,则可继续增加系统的访问量,并观察系统的性能变化

例如,当系统访问量增加到2万时,发现系统响应时间延迟到5秒,而当访问量增加到3万时,系统则崩溃,无法做出响应。由此可以确定系统能达到的极限访问量是3万


3.4 稳定性测试

定义:

在负载测试的基础上,执行较长时间的测试以检查系统的稳定性。

通常较长时间指3*24小时以上

总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/45605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CAS详解

文章目录 CAS使用示例Unsafe类实现原理CAS问题 CAS CAS全称为Compare and Swap被译为比较并交换,是一种无锁算法。用于实现并发编程中的原子操作。CAS操作检查某个变量是否与预期的值相同,如果相同则将其更新为新值。CAS操作是原子的,这意味…

【错题集-编程题】栈和排序(栈 + 贪心)

牛客对于题目连接:栈和排序_牛客题霸_牛客网 (nowcoder.com) 一、分析题目 每次尽可能的先让当前需要的最大值弹出去。 二、代码 // 修改后的代码 class Solution { public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方…

【2024_CUMCM】Matlab快速入门

目录 常识 disp and input 字符串合并 sum 提取矩阵指定位置的元素 指定行列 指定行or指定列(返回行/列向量) 指定某些行 指定全部元素,按列拼接 size repmat 矩阵的运算 基本运算 形状相同的矩阵运算 每个元素同时和常数相乘或相…

C++相关概念和易错语法(19)(继承规则、继承下的构造和析构、函数隐藏)

1.继承规则 继承的本质是复用,是结构上的继承而不是内容上的继承,近似于在子类中声明了父类的成员变量。 (1)写法:class student : public person 派生类(子类),继承方式&…

泛二级泛目录多模板程序程序(泛目录和二级目录的区别)

泛解析站群_优化网站排名吸引百度蜘蛛必备程序主要功能: 1、网站支持无限生成页面不存在死链的风险每个也是不是网站栏目就是文章内容! 2、支持域名泛解析绑定,每个二级域名都是一个独立的 3、支持百度自动提交收录,每天随机自动提交无限自己…

echarts图表:类目轴

category 类目轴,适用于离散的类目数据。 例如商品名称、时间等。 类目轴上的每个刻度代表一个类目,刻度之间没有量的关系,只是简单的分类。 在类目轴上,数据点会对应到相应的类目上。

运行前端项目提示 run `npm fund` for details,如何解决?

经常出现在前端的一个小坑,分享一下技巧。 运行npm install命令终端提示: 107 packages are looking for funding run npm fund for details 解决方案: npm install --no-fund

Linux 进程 PID 管理

文章目录 1. 前言2. 进程 PID 相关数据结构3. 进程 PID 的构建3.1 第一个进程 PID 构建3.2 第二个进程 PID 的构建过程3.2.1 从当前进程复制进程 PID 信息3.2.2 创建每进程的 PID 管理数据 (struct pid) 并初始化3.2.3 绑定进程和其相关的 PID 管理数据 3.3 进程的 PID 建立过程…

【Oracle】实验三 Oracle数据库的创建和管理

【实验目的】 掌握Oracle数据库的创建方法使用DBCA创建数据库在数据库中装入SCOTT用户及其表 【实验内容】 使用DBCA创建数据库,名为MYDB,找到其初始化文件(文本型和服务器型文件都要找到),查看各类默认位置并记录下来(包括物理文件所在目…

LINUX系统编程:基于环形队列和信号量的生产者消费者模型

目录 1.环形队列 2.加上信号量的理解 3.代码 1.环形队列 环形队列使用vector封装出来的。 环形队列可以实现并发生产和消费,就是在消费的同时也可以生产。 这个是建立在生产者消费者位置不重合的情况下。 因为位置重合之后,环形队列为空或者满&#xf…

Linux DRM 那些事 - HDMI 接口 DTS 配置

本文基于RockPI 4A单板Debian系统 Linux 4.4 内核介绍DRM框架HDMI接口DTS配置。 在DTS中主要实现:HDMI的使能、VOP绑定、IOMUX引脚配置和HDMI控制器配置。 一、HDMI 配置 文件:arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi #include "rk3…

C++ 宏

C中的宏是一种预处理指令,用于在编译时将代码中的标识符替换为指定的文本。 #define 指令 1.无参宏定义 无参宏的宏名后不带参数。 其定义的一般形式为: #define 标识符 字符串 其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命…

LLM 合成数据生成完整指南

大型语言模型是强大的工具,不仅可以生成类似人类的文本,还可以创建高质量的合成数据。这种能力正在改变我们进行 AI 开发的方式,特别是在现实世界数据稀缺、昂贵或隐私敏感的情况下。在本综合指南中,我们将探索 LLM 驱动的合成数据…

C语言——流程控制:if...else、switch...case

控制类语句: 逻辑运算符: 选择语句: if...else: if()括号内的内容终究会被转换成0,1,满足的话即为1,不满足的话为0。因此要注意,()括号内因为条件…

简单实现一个本地ChatGPT web服务(langchain框架)

简单实现一个本地ChatGPT 服务,用到langchain框架,fastapi,并且本地安装了ollama。 依赖安装: pip install langchain pip install langchain_community pip install langchain-cli # langchain v0.2 2024年5月最新版本 pip install bs4 pi…

ChatGPT摆脱“AI味”:全面提升写作质感

ChatGPT在各种写作、创作场景都发挥了很大的价值,即使中文语料库占比不到5%,也能生成流畅的中文文本。但随着使用的深入,大家也逐渐发现了机器生成的内容,往往带有一种僵硬、刻板的“AI味”,尤其在论文、自媒体写作中&…

算法力扣刷题记录 四十三【最大、最小深度问题】

前言 本文学习树的深度问题:二叉树(N叉树)最大深度、最小深度; 记录 三十九【层序遍历模版应用二】中解决过二叉树的最大深度和最小深度题目。思路是按层遍历: 最大深度,相当于层序遍历结束;…

ZBLOG程序怎么天收录?本人亲自试过请看以下教程(zblog怎么样)

您为管理员组,请查看下方隐藏内容! 先去ZBLOG官网下载ZBLOG程序 直达地址https://www.zblogcn.com/ 安装到宝塔里 安装好了之后打开zblog的后台 点开应用中心搜索CMS自适应资讯主题免费 安装即可 安装了之后配置主题内容 有经验者可以去吧动态改成…

pnpm9.5.0(catalog协议)

catalog(目录协议) 目录是工作区功能,用于将依赖版本范围定义为可重用常量,目录中定义的常量可以在package.json中使用, 结合 pnpm-workspace.yaml使用 定义pnpm-workspace.yaml packages:定义多仓库 packages:- packages/*cata…

Flink异常:org/apache/hadoop/hive/ql/parse/SemanticException

在flink项目中跑 上面这段代码出现如下这个异常&#xff0c; java.lang.NoClassDefFoundError: org/apache/thrift/TException 加上下面这个依赖后不报错 <dependency> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId…