性能测试基础概念

news2024/11/13 19:46:48

  前言👀~

上一章我们介绍了单元测试Junit的使用,今天我们来讲解一下性能测试的一些基础概念为后面我们进行性能测试做铺垫

什么是性能测试?

性能测试和功能测试有什么区别?

影响一个软件性能因素有哪些?

为什么要进行性能测试?

如何衡量性能好坏?

性能测试常见术语以及性能测试衡量标准(重要)

1.并发用户数

2.响应时间/平均响应时间

3.事务响应时间

4.点击率

5.吞吐量

6.思考时间

7.资源利用率

性能测试分类

1.一般性能测试

2.负载性能测试

3.压力性能测试

4.可靠性测试

性能测试执行流程


如果各位对文章的内容感兴趣的话,请点点小赞,关注一手不迷路,讲解的内容我会搭配我的理解用我自己的话去解释如果有什么问题的话,欢迎各位评论纠正 🤞🤞🤞

12b46cd836b7495695ce3560ea45749c.jpeg

个人主页:N_0050-CSDN博客

相关专栏:java SE_N_0050的博客-CSDN博客  java数据结构_N_0050的博客-CSDN博客  java EE_N_0050的博客-CSDN博客


什么是性能测试?

测试人员借助性能测试工具,模拟系统在不同场景下,对应的性能指标是否符合预期

软件的性能问题:资源泄漏,包括内存泄漏,线程死锁,阻塞等造成系统越来越慢,查询速度慢,或者列表的效率低等

例子:常见的就是在双11和618这种节日或学校网站选课的时候,在这种情况下,对于一些购物网站来说就会出现性能问题,短时间内同时有大量支付和创建订单等操作产生的并发量巨大导致服务器崩了,衡量一个软件性能好不好在这种极端情况下也可以看出

性能测试和功能测试有什么区别?

功能测试:简单点说就是在不同的场景下,软件只要能够正常运行且各功能正常即可可以简单的理解为验证产品功能有没有做到

性能测试:简单点说就是在极端情况下,软件是否能够正常运行各项指标是否达到标准(性能需求),可以简单的理解为验证产品有没有做好

在性能测试中,我们测试人员首先要了解哪些业务功能是用户最常使用的,以此来确定性能测试的关键业务功能更准确的应该是确定性能测试的关键业务要从业务功能的使用评率和功能的计算量,资源的消耗程度来决定,针对关键业务进行测试用例的设计

影响一个软件性能因素有哪些?

硬件:服务器CPU利用率、内存、CPU核心数等

软件:代码、编程语言等

用户:用户数、用户使用时长、用户访问频率等

为什么要进行性能测试?

1.获取系统性能的指标,作为性能指标的基准

2.验证系统的性能指标是否达到性能需求

3.发现系统的性能瓶颈内存泄漏等问题

4.系统正常工作的情况下的最大容量

例子:1可以理解为你的标准在哪,2可以理解为你是否符合男人的标准,3可以理解为你的瓶颈在哪例如你卧推的极限是多少,4可以理解为一个人在正常工作状态下能够接收和处理信息的最大能力

如何衡量性能好坏?

通过数据来进行展示,借助性能测试工具监控和收集的各项指标分析系统的性能


性能测试常见术语以及性能测试衡量标准(重要)

性能测试是一项综合性的工作,致力于暴露性能问题评估系统性能趋势。性能测试工作实质上是利用测试工具去模拟大量用户操作来验证系统能够承受的负载情况找出潜在的性能问题分析并解决;找出系统性能变化趋势,为后续的扩展做准备。一般地,它主要是针对系统的性能指标制定性能测试方案执行测试用例,得出测试结果来验证系统的性能指标是否满足预期值或性能需求

并发:同一时间大量用户的请求,注意要满足同一时间和大量

系统用户数:就是系统的注册用户数

在线用户数:就是成功登录系统的用户数

1.并发用户数

业务层面的并发用户数:同一时间向服务器发送请求的用户数

后端服务器层面的并发用户数:同一时间向服务器发送请求的请求数

2.响应时间/平均响应时间

用户响应时间:在用户角度就是发送请求到接收到响应的这段时间称为用户响应时间,下图中红色圈起来的就是用户响应时间

请求响应时间:就是服务器收到请求到发出响应的这段时间称为请求响应时间,下图中红色圈起来的就是请求响应时间

注意:如果响应时间比较平均,那么平均响应时间就有参考意义,如果波动较大,则没有参考意义影响一个软件响应时间的因素:网络带宽、服务器性能、用户设备、数据库、缓存等

3.事务响应时间

就是指用户发起一个事务请求到系统处理该事务并返回结果给用户所需的全部时间

358定律:每一个程序而言,收到请求并返回响应需要等待的平均时间为3.58毫秒,简单点说就是用户发送一个请求到收到响应在3秒钟内,则用户比较满意,如果系统在5秒内得到应答,则用户能够忍受;如果系统在8秒后得到应答,则用户不能忍受


每秒事务通过数(Transaction Per Second):TPS 是指每秒系统能够处理的事务数,通常指每秒成功的事务数,它是衡量系统处理能力的重要指标也可以说是一个衡量系统吞吐量的指标。每秒事务通过数=处理的事务数量/处理事务的时间,每秒事务通过数越高,性能越好

4.点击率

表示每秒用户向web服务器发送的http请求数。注意不是鼠标的一次点击,一次点击可能带有多个http请求。点击率=点击量/时间

5.吞吐量

这里的吞吐量以单位时间为度量衡量表示系统在某段时间内处理用户请求的数量,吞吐率=吞吐量/时间(s),吞吐率是体现系统的性能承载能力

6.思考时间

思考时间指的是用户在进行操作时,每个请求之间的间隔时间,就是用户在实际操作时的停顿间隔时间,就像我们上完厕所然后擦还有冲都有间隔时间

7.资源利用率

不同系统资源的使用情况。包含CPU,内存,硬盘,网络等,如果占用的资源比较高,性能就差一些


性能测试分类

1.一般性能测试

让系统在正常环境下运行,验证系统是否满足性能指标。一般在软件刚上线,对软件性能进行一个估量

例子:往一个杯子里一点一点加水,加到满

2.负载性能测试

验证系统在一定的压力情况下继续增加负载,观察性能指标是否出现拐点(何时下降)

3.压力性能测试

系统在极限的情况下对系统施加压力,观察系统的性能表现如何。专业点说验证系统长期处于临界饱和阶段的稳定性以及性能指标的变化,试图找到系统处于临界状态时的主要瓶颈点。就是验证系统长期处于这种压力情况下的性能表现如何,往往会把系统搞崩掉

例子:一个杯子已经装满水了,一滴一滴的加,看看加到多少会漏(找到瓶颈)

4.可靠性测试

在一定的软硬件环境下,长时间运行一定的负载,确定系统在满足性能指标的前提下是否运行稳定。就是验证系统在长期运行情况下,各项指标是否正常。从一天->一周->一个月->半年->一年等


性能测试执行流程

需求分析->测试计划->选择性能测试工具->编写性能测试脚本->执行性能测试脚本->写一个或生成对应的性能测试报告

性能测试后对测试报告进行分析,如果不符合预期需要提出解决方案,解决后还要再测试一遍。性能测试不符合预期不叫bug,属于是性能瓶颈,是一定有的,只能不断优化。注意性能测试是在功能测试之后的!

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

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

相关文章

循环神经网络和自然语言处理一

目录 一.分词 1.分词工具 2.分词的方法 3.N-gram表示方法 二.向量化 1.one-hot编码 2.word embedding 3.word embedding API 4.数据形状改变 既然是自然语言,那么就有字,词,句了 一.分词 1.分词工具 tokenization,jie…

Outlook Pst文件大小最大多大?如何分开缩减?

簡介 預設情況下,personal Folders (.pst) 和離線 Outlook Data File (.ost) 檔案在 Microsoft Outlook 2010 和 Outlook 2013 中為 Unicode 格式。 .pst 和 .ost 檔案的整體大小有 50 GB 的預先設定限制。 此限制大於 2007 和 Outlook 2003 Outlook Unicode .pst …

零基础5分钟上手亚马逊云科技AWS核心云开发/云架构知识 - 成本分析篇

简介: 欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列,适用于任何无云计算或者亚马逊云科技技术背景的开发者,让大家零基础5分钟通过这篇文章就能完全学会亚马逊云科技一个经典的服务开发架构方案。 我将每天介绍一个基于亚马逊云科…

数据结构 - 相邻节点迭代器

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、相邻节…

nuxt3实战:完整的 nuxt3 + vue3 项目创建与useFetch请求封装

一. 安装 pnpm dlx nuxilatest init <project-name>// ornpx nuxilatest init <project-name>如遇到报错 手动安装&#xff1a; 浏览器访问报错https请求地址&#xff1a; 点击tar(项目初始文件的下载地址)对应地址,下载starter-3.tar.gz 包到本地 本地创建项…

【Android】使用网络技术——WebView的用法、http协议、OKHttp、解析XML、JSON格式数据笔记整理

WebView的用法 新建一个WebView项目 修改activity_main中的代码&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:id"id/main"and…

STM32F1之SysTick系统定时器详细解析

目录 1. 简介 2. SysTick功能框图 3. SysTick寄存器 3.1 SysTick控制及状态寄存器 3.2 SysTick重装载数值寄存器 3.3 SysTick当前数值寄存器 3.4 SysTick校准数值寄存器 4. SysTick定时时间计算 5. SysTick寄存器结构体 6. 写一个us级延时函数 7. 写一个…

240806-RHEL 无法通过 ssh username@ip 远程连接,报错:Connection closed by ip port 22

A. 原因排查 遇到这个错误通常意味着 SSH 服务可能在目标主机上没有正常运行&#xff0c;或有防火墙/网络配置问题。以下是一些排查步骤&#xff1a; 检查 SSH 服务状态&#xff1a; 确认 SSH 服务是否正在目标主机上运行。 sudo systemctl status sshd重启 SSH 服务&#xff…

探索 Python 异步通信的奥秘:WebSockets 库的神奇之旅

文章目录 探索 Python 异步通信的奥秘&#xff1a;WebSockets 库的神奇之旅背景&#xff1a;为何选择 WebSockets&#xff1f;什么是 websockets 库&#xff1f;安装 websockets 库5个简单的库函数使用方法场景应用示例常见问题与解决方案总结 探索 Python 异步通信的奥秘&…

用Manim实现三维坐标系的绘制

1.ThreeDAxes 函数 ThreeDAxes是 Manim 中用于创建三维坐标系的类。在manim中常用的三位坐标绘制函数是&#xff1a; class ThreeDAxes(x_range(-6, 6, 1), y_range(-5, 5, 1), z_range(-4, 4, 1), x_length10.5, y_length10.5, z_length6.5, z_axis_configNone, z_normala…

数据仓库怎么建设?一文详解数仓的建设过程!

随着信息技术的飞速发展&#xff0c;企业不仅需要存储和管理海量数据&#xff0c;更迫切需要从这些数据中提取有价值的信息&#xff0c;以支持复杂的决策制定过程。数据仓库不仅是存储数据的场所&#xff0c;更是支持复杂查询、报告和数据分析的强有力工具&#xff0c;其建设已…

JavaScript异步简介|Promise快速入门

异步&#xff08;Asynchronous, async&#xff09;是与同步&#xff08;Synchronous, sync&#xff09;相对的概念。 异步 JavaScript 简介 异步编程技术使你的程序可以在执行一个可能长期运行的任务的同时继续对其他事件做出反应而不必等待任务完成。与此同时&#xff0c;你…

Linux工具|运维工具rename常用命令详解

&#x1f4eb; 作者简介&#xff1a;「六月暴雪飞梨花」&#xff0c;专注于研究Java&#xff0c;就职于科技型公司后端工程师 &#x1f3c6; 近期荣誉&#xff1a;华为云云享专家、阿里云专家博主、腾讯云优秀创作者、ACDU成员 &#x1f525; 三连支持&#xff1a;欢迎 ❤️关注…

【vulnhub】Wakanda :1靶机

靶机安装 下载地址&#xff1a;https://download.vulnhub.com/wakanda/wakanda-1.ova 运行环境&#xff1a;Virtual Box 信息收集 靶机IP扫描 netdiscover -i eth0 -r 192.168.7.0/24 端口扫描 nmap -A 192.168.7.243 -p- 80端口开启了http服务&#xff0c;在3333端口开启…

案例研究丨盛泰光电携手DataEase实现数据驱动智能制造

盛泰光电科技股份有限公司&#xff08;以下简称为“盛泰光电”&#xff09;是中国第一批摄像头模组制造企业。自成立至今&#xff0c;一直专注于手机摄像头模组的研发、制造、销售与服务&#xff0c;并向非手机包括笔记本、车载、医疗、AIoT等领域延伸&#xff0c;形成以手机摄…

PHP + Laravel + RabbitMQ + Redis 实现消息队列 (二) 消费队列在RabbitMQ和redis中的简单使用

最简单的队列功能 RabbitMQ和消息传递通常会使用一些术语&#xff1a; 生产者&#xff08;Producer&#xff09;意味着发送消息。一个发送消息的程序称为生产者。队列&#xff08;Queue&#xff09;尽管消息通过RabbitMQ和您的应用程序流动&#xff0c;但它们只能存储在队列中…

数据结构(01):数据结构概述(基本术语、逻辑结构和物理结构)

1、数据结构概述 (1)基本术语 A.数据元素 具有一定意义的基本单位。如人类的数据元素是人&#xff08;张三、李四等&#xff09;。 B.数据项 可以看作是数据元素的属性。如人的属性&#xff08;姓名、年龄、身高等&#xff09; C.数据对象 性质相同的数据元素的集合。如某一栋…

群聊的创建 表情包发送 图片发送

目录 群聊&#xff1a; ​编辑 表情包发送&#xff1a; 图片发送&#xff1a; 群聊&#xff1a; 1.群资料的表groupinformation 字段&#xff1a;GroupId 群id&#xff0c;GroupName 群名&#xff0c;CreatTime 创群时间&#xff0c;CreatUserId 创群的人&#xff0c;…

萤石云 ezuikit-js创建的播放器实例esc取消全屏后变黑屏

原因&#xff1a;上层页面重新设置了容器的宽高&#xff0c;导致uikit退出全屏时宽高计算异常 解决方法&#xff1a;实例初始化的时候会传入宽高width、height&#xff0c;播放器的画面尺寸是根据这两个参数设置的&#xff0c;然后退出全屏会回到这两个值

计算机的错误计算(五十五)

摘要 展示大数的余弦函数值的错误计算。 根据国际IEEE 754 标准[1]&#xff0c;包括余弦在内的三角函数的定义域是整个实数范围&#xff1a; 但是&#xff0c;实际情况怎样呢&#xff1f; 例1. 计算 . 在 Python下计算&#xff1a; x30**65 print(x) import math print(ma…