性能测试——概念概况

负载测试:逐步增加系统负载,测试系统性能变化,并最终确定系统所能承受的最大负载量。

 

                 通过逐步增加并发用户数,测试系统性能变化,并最终确定系统所能承受的最大负载量。

 

                简单理解:逐步加压,找系统能达到的最大并发数。

 

过程:逐步增加并发用户数;

 

 

 

 

 

 

 

 

 

增加到最大的标准(限制)?标注不一样,结果也不一样

 

1、错误率 < 0.1%

2、平均响应时间 < 1.5s  (性能测试中,http协议的接口,行业标注,1.5S是可以接受的)

3、资源利用率 < 80%

 

 

 

 

 

 

最大并发用户的标注:开始出现连续报错(服务器处理不过来、服务宕机、服务器宕机)

 

 

 

 

 

 

再通过压缩小区间内的步长,就可以得到最大可接受并发用户数的具体数量;

 

 

 

 

 

 

实际场景

  • 有一个业务,增加到40个人的时候,服务器还能正常使用,没有异常
  • 当你增加到50个人的时候,服务器已经开始有异常了,那么就能确定40-50之间某个值就是系统所能承受的最大负载量【出现性能拐点,找到了服务器性能瓶颈的范围值】
  • 最后减小加压梯度(比如:从40个人开始每次增加1个人、2个人),确认最大负载量【确认性能拐点】

 

 

 

 

 

服务器又有哪些可能会出现的异常呢

  • 响应时间超长:正常服务器处理请求时间是 1s,但现在变成3s - 5s
  • 服务报错:无法同时正常响应多个请求
  • 服务器宕机:系统完全用不了

 

 

 

 

 

 

 

 

 

 

 

 

 ================================================================================

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 压力测试:是在比较长的时间中,持续进行性能测试,看服务器的稳定性;————较长的时间,指以   小时   为计量单位;

 

  • 在较大的性能压力下,持续运行一个比较长的时间,看看系统服务是否正常及系统资源的利用率情况
  • 通俗理解:鸭梨山大!
  • 关键字:较大压力 + 较长时间
  • 注意:不是满负荷压力哦

 

 

 

 

场景类比

问:大家什么时候会觉得工作压力大?

答:996、007;因为你不会觉得955压力山大吧

结论:所以在我们日常工作中,长时间工作强度高,才会觉得压力大;如果你一周就加班一天也说压力大...(那就别干这一行了)

 

 

 

 

压力测试用来干嘛的

测试系统的稳定性

 

 

 

 

压力测试持续运行时间要多久?

  • 标准性能测试里面,一般是7*24小时,或者是它的倍数
  • 但是实际工作中,并不会这么久,否则成本太高
  • 所以会以小时为单位,比如:4个小时、8个小时...晚上下班之后做,第二天早上上班看结果

 

 

 

 

 

如何取压力值

  • 在负载测试中,我们确认了系统所能承受的最大负载量
  • 压力值 < 最大负载量,一般取80%左右

 

 

 

 

 

先负载测试还是压力测试?

  • 先负载测试
  • 负载测试可以找到服务器性能瓶颈的范围值,若生产环境中系统稳定性较差,再做压力测试
  • 所以压力测试是可做可不做的

 

 

 

 

 

 

 

 

 

 

 

 

======================================================================

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

可靠性测试:

  • 在给定的一定的业务压力下,持续运行一段时间,查看系统是否稳定
  • 关键字:是否稳定,一定业务压力
  • 注意:不是较大压力哦

 

 

 

 

 

业务场景栗子

电商秒杀场景,几十个商品几十万个人同时秒杀抢购

 

 

 

 

如何理解可靠性测试

  1. 编写性能脚本:假设一秒内有一万个人同时发起请求
  2. 有压力吗?,一万个人同时发起请求
  3. 但是持续时间,不像压力测试一样需要持续一段时间
  4. 目的是为了验证当这么多人同时发起请求时,成功秒杀的用户能否继续完成后续下单付款等操作【一定业务压力下,系统是否稳定运行】

 

 

 

 

 

 

 

 

 ==============================================================

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 容量测试:数据库表数据量级别不一样的情况下,进行性能测试,得到性能指标;

  • 在一定的软、硬件条件下,在数据库不同数据量级数据量的情况下,对系统中读/写比较多的业务进行测试,从而获得不同数据量级下的性能指标值
  • 关键字:不同数据量级

 

 

 

关系型数据库10w数据和100w级别的数据,性能会不一样有差别;

 

 

 

 

 

数据库数据量对性能测试结果有没有影响?

肯定有

  • 比如数据库已经有几百条数据和几百万条数据,查询的速度肯定不一样,所以肯定会影响性能测试结果
  • 数据量级的差异,会影响TPS、响应时间、网络等

 

场景类比

从一袋米中找一个绿豆,和一碗米中找一个绿豆,找的时间肯定是千差万别的

 

 

 

 

 

 

 

 

 

 

 

 

 

 =============================================================================

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 参考网址:https://blog.csdn.net/2301_78276982/article/details/136158400

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

===================================================================

 

 

 

 

 

 

 

 

 

 

 

 

 

 性能指标

 

 

 

 

 

 

 

1、并发用户数

  

并发:同一时刻向服务器发起请求的数量(同一时间点向服务器发起相同请求的数量)

 

并发用户数:同一时间,向服务器发起请求的用户数量(实现:进程、线程、协程)

 

 

 

 

jmeter:线程实现;

loadruner:默认线程,也可以用进程实现;

locust库:协程

 

 

 

 

进程:资源拥有者

线程:进程中真正执行的任务单元

协程:更小的执行单元(python中)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2、平均响应时间

 

响应时间:从发起到收到,中间的时间差(时间=发起的网络传输之间+服务器处理时间+传回数据的网络时间)

 

90%的响应:总请求量中,有90%的请求量小于等于这个时间;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3、tps

tps:服务器美秒处理事务数

 

事务:

jmeter中的事务:可以是一个接口的1次完整请求就是一个事务——默认的;

jmeter中,也可以把多个接口合并到一起,一起完成多个接口的完整请求,当做一个事务;————用到jmeter中的事务控制器的合并取样器功能;

 

性能测试中,先做单接口的性能测试,再做多接口的合并事务性能测试;

 

tps是衡量服务器综合能力的最主要的指标;

 

 

 

 

 

 

 

 

 

 

 

 

 

4、吞吐量

 

吞吐量:网络中每秒传输的事务数;

a、如果网络没有瓶颈,事务数值与tps数值相等;

b、网络有瓶颈,则不相等;

 

 

 

 

 

 

 

 

5、吞吐率

吞吐率:单位时间内,在网络传输的数据量的平均速率(kB/s)

 

 

 

 

 

 

 

 

6、服务器利用率

cpu

IO

硬盘

网络

 

 

 

 

服务器资源的使用程度,比如服务器(应用、服务器)的CPU利用率,内存利用率,磁盘利用率,网络带宽利用率

一般不超过80%

posted @ 2024-04-18 14:04  小白龙白龙马  阅读(1)  评论(0编辑  收藏  举报