【性能测试】稳定性测试要点-监控关键指标总结(超细整理)


前言

1、稳定性测试的要点

1)长时间的以正常的业务负载进行运行(最低为用户实际使用时的负载量,如果用户实际负载量低于最优负载量,也可以使用最优负载量)。

2)稳定性的测试数据(用户实际使用负载量)来源于运营数据。

3)稳定性测试时,需要针对不同的业务操作,并且模拟不通的用户,进行长时间的稳定性测试(并行执行所有脚本,因为要模拟实际用户使用场景,不同的用户在线所做的动作肯定不一致)。

2、性能测试的监控的关键指标

1)系统指标:与用户场景和需求相关的指标

用户并发数:某一物理时刻同时向系统提交请求的用户数。
平均响应时间:系统处理事务的响应时间的平均值,一般在3s左右。
吞吐量:服务器的最大处理能力。

2)服务器资源的指标:硬件服务器的资源使用指标

cpu使用率:一般情况下上限为85%。
内存占用率:一般情况下上限为85%。

磁盘I/O: 1)监控磁盘实际I/是否已接近最大值,接近则有问题。2)I/O队列长度一直不为0,说明磁盘I/O有问题。

网络带宽:监控实际的网络流量,与网络带宽做对比,如果实际网络流量与网络带宽比较接近,则网络存在瓶颈,需要优化。

注意:实际中的百兆带宽是Mbps,但是我们技术中衡量的带宽的单位是MBps,1MBps=8Mbps【1Byte=8bit】,所以实际带宽=100/8=12.5

3、Java应用,应用程序在运行时的各项指标

Java运行时的内存划分包含:堆区、栈区(分为虚拟机栈和本地方法栈)、方法区、程序计数器。

堆区:堆是线程共享的内存空间,Java虚拟机启动时就创建了,用来存放对象、数组。

方法区:方法去也是线程共享的内存空间,也是Java虚拟机启动时就创建了,用来存放类的基本信息,如方法、接口、构造函数、字段、常量、全局变量等。

栈区:包含虚拟机栈区和本地方法栈区,其中虚拟机栈区保存程序运行的局部变量,本地方法栈区为与操作系统本地程序工作需要使用的变量。

程序计数器:存放一个指针,指向当前线程正在执行的字节码指令的行号。
堆区和方法区为线程共有的,Java虚拟机运行时就创建,线程执行时直接使用,线程结束不释放。

栈区和程序计数器为线程私有的,是随着线程生随着线程灭的,也就是说线程使用的时候创建,线程结束后释放。

那么测试的时候重点关注的就是就是堆区,当对象结束后没有被释放,那么空间就会被占用,也就是内存泄漏。测试时,如果堆区的空间持续上升没有下降,就是内存泄漏。

4、数据库,数据库服务器运行时需要监控的指标

慢查询:监控系统在运行时,所执行的所有sql语句,检查这些sql是否慢(设置一个时长,超过这个时长就是慢查询)

缓存命中率:监控业务执行过程中sql查询时的缓存命中率(查询语句读取缓存的次数占总查询次数的的比例,如果缓存命中率过低,需要优化代码和sql查询语句)

数据库连接池:监控数据库连接池的使用率(如果数据库连接池被占满,如果此时有新的sql语句要执行,只能排队等待,等待连接池中的连接被释放【也就是之前的sql

语句执行完成】)如果监控发现数据库连接池的使用率过高,甚至是经尝出现排队的情况,需要调优。

mysql锁:监控测试过程中是否有死锁出现,如果出现,需要进行优化。

5、测试机资源指标,测试机在模拟用户负载时的资源使用情况

cpu:cpu使用率一般不超过80%
内存:内存使用率一般不超过80%
网络:带宽
磁盘空间:压测机主要是发送请求

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

生活是一场马拉松比赛,要有坚定的决心和毅力,勇敢地向前冲,不断提高自己的能力,丰富自己的经验,最终一定能取得卓越的成绩。

不论做什么事情,都要有决心和勇气,努力去争取自己想要的东西,勇敢地去追求自己的梦想,不断地挑战自己,不断地提高自己,最后一定能实现自己的目标。

每个人都有自己的特点和优势,要懂得利用这些优势,去追求自己的梦想,去发展自己的能力,去创造自己的未来,最终成为一位成功的人。

猜你喜欢

转载自blog.csdn.net/shuang_waiwai/article/details/134507719