性能测试概念篇

一、性能测试(概念)

为了发现系统性能问题或获取系统性能相关指标而进⾏的测试

⼀般在真实环境、特定负载条件下,通过⼯具模拟实际软件系统的运行及其操作,同时监控性能各项指标,最后对测试结果进行分析来确定系统的性能情况

常见的性能问题: 查询数据时间过长,网速很慢,服务器⽆响应,查询数据很长时间才显示列表

二、常见性能测试指标

1、并发数(并发用户数)

从业务层面看:并发用户数指实际使用服系统的用户总数

后端服务器看:指 web 服务器在一段时间内处理浏览器请求而建立的的 http 连接数或生成的处理线程数

2、吞吐量

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

请求数量: TPS和QPS

TPS:每秒处理事务数,用于衡量系统在一定时间能处理的事务数

公式:总的请求成功的事务/总的运行时间

QPS:每秒查询率

3、响应时间

应用系统从请求发出开始,到客户端接收到最后⼀个字节数据所消耗的时间

对于web系统而言,系统响应时间包含前端展现时间和系统响应时间

前端展现时间:页面渲染时间

系统响应时间:包含服务器、数据库、通讯网络等响应时间

4、并发用户、系统吞吐量、系统响应时间之间的关系

当并发用户较少,系统吞吐量低,系统响应时间较短,我们认为系统处于空闲区间。

随着系统并发用户增加,系统吞吐量开始呈线性增长,系统性能进⼊了线性增长区间。

吞吐量在某个点上达到了饱和点,也称之为拐点。

在这之后用户请求不再被立即处理,响应时间随之变长,吞吐量也逐渐降低,系统性能进⼊了过饱和区间

系统性能的拐点通常是性能测试的主要目的

三、性能测试关注点

不同的角色看待性能测试的侧重点也不同

对于终端用户来说,表现为用户进⾏业务操作时的主观响应时间,用户重点关注从你提交请求到收 到响应的时间,包括系统响应时间和前端展现时间

系统运维人员除了关注单个请求的响应时间,更关注⼤量用户并发访问时对系统的影响,以及更⼤ 负载情况下的系统健康状态,从而执行系统的整体的策略

软件设计开发⼈员关注算法设计、架构设计、性能最佳实践、数据库相关、软件性能的可测试性等方面

性能测试⼈员工作重点在于性能测试场景的设计、脚本的开发和执行,以及性能缺陷的排查和定位。

四、性能测试分类

1、基准测试

基准测试⼜称单用户测试,主要用于监测被测系统在较低压力下的运行状况并记录相关数据。当性能测试环境确定以后,通常选取业务模型中的重要业务做基准测试,对被测系统施加⼀定压⼒,从而获取被测系统在单用户运行情况下的各项性能指标,为多用户并发测试和混合场景测试等提供参考依据

2、并发测试

并发测试用于评估被测系统的某些特定操作同时发生时的性能表现,例如,被测系统被多个用户同时登录时的响应能力,或系统的某⼀功能被多个用户同时操作时的性能表现。通过并发测试,不仅可以获得被测系统在多用户并发操作时的性能指标,还可以发现被测系统在并发条件下可能发⽣的问题,如内存泄漏、线程锁、资源争用问题。例如,通过模拟多 个用户同时访问某⼀条件数据,或模拟多个用户同时更新数据,可能会发现被测系统的数据库访问错误、写⼊错误等

3、负载测试

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

4、压力测试

压力测试用于评估被测系统在高于预期、高于指定容量负载需求或低于最少需求资源的条件下的行为。压⼒测试关注被测系统处理超出预期或特定峰值负载的能力,也可以⽤于评估系统在资源匮乏时的处理能力,比如在可用的计算能力、带宽和内存资源不足的条件下系统的表现。进⾏压力测试时通常采⽤逐步增加系统负载的方式,使系统某些资源达到饱和甚至失效,从而发现那些只有在高负载条件下才会出现的缺陷,如同步问题、内存泄漏等。通过对被测系统进行压力测试,也能找出被测系统的性能拐点,获得系统所能提供的最⼤服务级别(系统所能承受的最大压力),评估系统在峰值负载或超出最大负载情况下的处理能力。

5、稳定性测试

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

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

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

相关文章

汽车免拆诊断案例 | 2023款零跑C01纯电车后备厢盖无法电动打开和关闭

故障现象  一辆2023款零跑C01纯电车,累计行驶里程约为2万km,车主进厂反映,后备厢盖无法电动打开和关闭。 故障诊断  接车后试车,操作后备厢盖外侧、驾驶人侧及遥控钥匙上的后备厢盖开启按钮,可以听到后备厢盖解锁的…

【设计模式】深入理解Python中的适配器模式(Adapter Pattern)

深入理解Python中的适配器模式(Adapter Pattern) 在软件开发中,常常会遇到需要让不兼容的类或接口协同工作的问题。适配器模式(Adapter Pattern)是一种结构型设计模式,通过提供一个包装器对象,…

J1:ResNet-50算法实战与解析(鸟类识别)

J1周:ResNet-50算法实战与解析(鸟类识别) **理论背景**☕1、CNN算法发展2、ResNet介绍3、ResNet-50介绍1、Input->STAGE 0:2、残差块(STAGE1->STAGE4) **PyTorch实现**1、导入库并设置GPU2、导入和检查数据3、划分数据集4、…

图示详解OpenEuler下Samba多用户身份验证配置、测试

前言 前文《图例详解OpenEuler下Samba安装、配置和测试》已对Samba服务的工作原理、安装、配置和测试,做了系统的介绍,并对匿名用户的访问samba服务器做了配置,相必读者已对samba服务的流程有了初步、系统的了解,本文在以上基础上…

C++进阶:哈希

✨✨所属专栏:C✨✨ ✨✨作者主页:嶔某✨✨ 哈希概念 哈希(hash)⼜称散列,是⼀种组织数据的⽅式。从译名来看,有散乱排列的意思。本质就是通过哈希函数把关键字Key跟存储位置建⽴⼀个映射关系,查找时通过这个哈希函数…

C语言:符号“->”在C语言中什么意思呢?

1.C语言中符号“->”的意义: ‌指针中的->表示用于访问指针所指向的结构体或联合体的成员。‌ 这是一个操作符,通常用于简化代码,可以替代使用(*ptr).member的方式。 ->操作符的具体用法是,当你有一个指向结构体的指针时…

小红书笔记详情接口技术解析

小红书的笔记详情接口是小红书开放平台提供的一种服务,允许开发者通过API(应用程序编程接口)获取小红书上笔记的详细信息。这些信息包括但不限于笔记的标题、内容、图片、标签、点赞数、评论数等关键数据。本文将详细介绍如何使用小红书笔记详…

Android 关于引用unityLibrary依赖库无法加载so库问题或脚本报错问题

Unity编辑器导出 Android 项目结构 会生成unityLibrary依赖库&#xff0c;复制到其他项目使用时发现脚本一直在报错&#xff0c;结果发现是so没有引用到的问题 1.在 app 目录下的AndroidManifest.xml文件 application节点添加 <application android:extractNativeLibs&qu…

MySQL数据库:基础介绍下载与安装

数据库基础知识先谈发音MySQL如何发音&#xff1f;在国内MySQL发音有很多种&#xff0c;Oracle官方文档说他们念作My sequal[si:kwəl]。 数据库基本概念 1。数据数据&#xff08;Data&#xff09;是指对客观事物进行描述并可以鉴别的符号&#xff0c;这些符号是可识别的、抽…

【Android】Jetpack入门知识总结(LifeCycle,ViewModel,LiveData,DataBinding等)

文章目录 LifeCycle使用Lifecycle解耦页面与组件自定义控件实现LifecycleObserver接口注册生命周期监听器 使用LifecycleService解耦Service与组件使用ProcessLifecycleOwner监听应用程序生命周期 ViewModel用法在 Fragment 中使用 ViewModel LiveDataDataBinding导入依赖基本用…

Pandas | 通过PUBG数据集进行数据分析并理解函数使用

PUBG数据分析 PUBG数据集train 数据分析iloc和loc 过滤参数人数少的比赛duplicated().count() 和 transform(count)countplot绘图函数 补充&#xff1a;查看判断pd的某一列是否没有重复值方法 1: 使用 duplicated() 方法方法 2: 使用 nunique() 方法方法 3: 使用 value_counts(…

探索Adobe Acrobat Reader的高级功能:提升PDF文档处理效率

探索Adobe Acrobat Reader的高级功能&#xff1a;提升PDF文档处理效率 Adobe Acrobat Reader&#xff0c;作为Adobe系列中的一款PDF阅读器&#xff0c;早已超越了传统阅读器的范畴&#xff0c;成为了一款功能强大的PDF文档处理工具。无论是商务人士、学生还是科研人员&#x…

4418 , TF 卡烧写, 无法启动,TF卡启动报错

问题: 在使用TF卡烧写的过程中,出现 TF卡无法启动的情况,报错如下: 解决:  我一直以为是 烧写的过程不对,或者是 烧写的uboot 镜像不对,或者是核心板有问题。 但是后来发现,我如果使用 另一台电脑 烧写HMI 的UBOOT的时候,我使用的是同一个 核心…

C语言指针应用题[从大到小顺序输出]

C语言简单指针应用题: 输入两个整数&#xff0c;按大到小输出它们 这段代码的作用是接收用户输入的两个整数&#xff0c;然后通过指针操作将较大的数和较小的数进行交换&#xff0c;并输出从大到小排列的两个数。 使用指针变量p1&#xff0c;p2和temp&#xff0c;p1对应最终大…

边缘计算网关助力煤矿安全远程监控系统

煤矿开采环境复杂&#xff0c;危险程度高&#xff0c;每一次事故都带给行业血淋淋的教训&#xff0c;安全问题也是政府与行业亟待解决的难题。伴随着技术的发展&#xff0c;煤矿智能化成为行业探索的新方向&#xff0c;降低安全风险也是智能化的重要目标之一。防微杜渐是安全生…

Markdown编辑器测试文章

Markdown编辑器测试文章 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一…

鹏哥C语言86-3---第15次作业:算术转换等

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> //----------------------------------------------------------------------------------------第15次作业 算术转换等 //---------------------------------------------------------…

【Vue.js 3.0】Vue.js 中使用 Component 动态组件

背景 在 Vue 3 中&#xff0c;动态组件的写法与 Vue 2 基本相同&#xff0c;因为这是一个 Vue 的核心功能&#xff0c;并且在 Vue 3 中得到了保留。不过&#xff0c;Vue 3 引入了 Composition API&#xff0c;这允许你以不同的方式组织组件逻辑&#xff0c;但这并不影响动态组件…

AI与测试行业调研

业务方向及应用场景 方向 技术 应用 大语言模型 私有化大模型&#xff1a; llama2 privateGPT 业务分析 测试数据生成 机器学习、深度学习应用 视觉自动化&#xff1a; FastbotApplitools 视觉自动化 缺陷预测与挖掘 知识图谱 neo4j 测试用例生成 精准测试 大语言模…

WEB前端使用标签制作网页

需要使用HTML的一些基本标签制作网页 基本代码如下: <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><form action"#" method"post" enctype"text/…