前言👀~
上一章我们介绍了单元测试Junit的使用,今天我们来讲解一下性能测试的一些基础概念为后面我们进行性能测试做铺垫
什么是性能测试?
性能测试和功能测试有什么区别?
影响一个软件性能因素有哪些?
为什么要进行性能测试?
如何衡量性能好坏?
性能测试常见术语以及性能测试衡量标准(重要)
1.并发用户数
2.响应时间/平均响应时间
3.事务响应时间
4.点击率
5.吞吐量
6.思考时间
7.资源利用率
性能测试分类
1.一般性能测试
2.负载性能测试
3.压力性能测试
4.可靠性测试
性能测试执行流程
如果各位对文章的内容感兴趣的话,请点点小赞,关注一手不迷路,讲解的内容我会搭配我的理解用我自己的话去解释如果有什么问题的话,欢迎各位评论纠正 🤞🤞🤞
个人主页: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,属于是性能瓶颈,是一定有的,只能不断优化。注意性能测试是在功能测试之后的!