目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
性能测试,是结合被测系统应用架构、业务场景和实现细节、逻辑,对软件响应时间、处理速率、容错能力等进行分析测试,找到系统的性能瓶颈,并确认问题得到解决的过程。
性能测试缺陷分类:
硬件:磁盘空间;CPU;IO读写速率;内存
网络:带宽;网络波动;CDN;延时;丢包
应用:JVM;代码逻辑
配置:JDK版本;底层配置;参数配置
数据库:索引;锁;表空间;慢SQL;数据量
中间件:超时;线程池;缓存策略;最大连接数;通信实现方式;负载均衡
接下来就来详细分析一下
1、硬件
磁盘空间:磁盘空间不足导致系统运行变慢,文件、日志等无法生成存放导致的性能瓶颈;
CPU:CPU的核心功能是解释计算机指令以及处理数据,性能主要体现在其运行程序的速度上。影响运行速度的性能指标包括工作频率、Cache容量、指令系统和逻辑结构等参数;
IO读写速率:即input和output,输入和输出,主要考虑数据处理时的读写速度,页交换等情况;
内存:所有的程序都是运行在内存中的,其作用是用于暂时存放CPU中的运算数据,以及与外部存储器交换的数据,内存不足会限制程序的数据处理速度,因此这也是很重要的一项性能关注指标;
2、网络
带宽:高并发情况下,如果带宽不足,可能会导致网络资源竞争,超时等情况;
网络波动:这里是从网络的稳定性来描述,即性能测试的环境,需要一个稳定的网络环境;
CDN:即内容分发服务,有时候不同的CDN策略也会影响到“用户”感知到的系统性能表现;
延时:延时的值越大,对系统性能表现影响越大(比如格斗类的PVP游戏),且性能测试的结果也存在更大的偏差;
丢包:数据在网络上是以数据包的形式传输的,如果丢包,则可能造成报错或异常的情况;
3、应用
JVM:
堆内存分配:根据系统硬件条件来进行合理的堆内存分配,一般来说JVM的堆内存分配不要超过系统内存的25%较好;
垃圾回收算法:JAVA的动态垃圾回收机制,是基于不同的几种回收算法来进行的,根据具体的情况,选择合适的垃圾回收策略;
OOM:即内存溢出(out of memory),这个算是性能测试中很常见的一个问题,通常是由于代码问题造成的内存泄漏、GC不够彻底、内存被耗尽引起;
代码逻辑:
常见的情况有不合理的线程引用和内存分配;
4、配置
版本:在性能测试过程中,一定要确保被测系统的版本和实际生产保持一致,否则由于版本不同带来的些许差异可能会对性能测试带来很大的偏差和影响;
底层配置:涉及到操作系统、服务器等硬件的一些配置方式不合理,带来的性能瓶颈;
参数配置:系统架构设计中,各个不同的参数配置带来的性能瓶颈;
5、数据库
索引:索引的存在就像一个标签目录一样,在执行数据库操作时提供更为快速的执行效率,减少磁盘IO操作和执行的数据库系统时间;
锁:为了保证事务的原子性和隔离性,有了锁的存在,但有时候由于某些原因造成的表锁,也是性能瓶颈的一种表现;
表空间:不合理的表空间设计,导致的数据库性能问题;
慢SQL:慢SQL会导致数据库操作时间变长,增加IO读写以及引起一些列的资源竞争等问题,常见的慢SQL原因如下(以MySQL为例):
数据量:对同一张表来说,1W条数据和1000W条数据,对其进行操作时的性能表现也是不同的,因此在性能测试时对于数据的正确性可用性,以及数据量也是需要重点关注的;
6、中间件
超时:设置合理的请求或响应超时时间,是很有必要的,这点要根据具体的业务场景和系统架构来考虑,具体的超时时间,建议进行配置测试来设定;
线程池:之前的博客介绍过线程池的相关资料,线程池配置太小,很容易被使用完,太大的话又浪费资源,合理的线程池,建议进行配置测试来确定;
缓存策略:缓存的优点是减少请求响应过程中的传输时间,但有时候在高并发情况下,缓存很容易失效而导致缓存穿透,瞬间对服务端带来很大的压力;
最大连接数:关于连接数,之前的博客也介绍过,合理的连接数配置是很重要的,否则连接数太少容易导致队列等待、超时,连接数太多则浪费了系统资源;
通信实现方式:同步(sync)和异步(Async);
负载均衡策略:现在很多的系统都进行了服务集群,随之而来的就是负载均衡策略的实现,如果负载均衡不够“均衡”,在大数量的冲击下,容易导致某些服务的异常或者挂起;
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
在人生的道路上,没有捷径可走,只有脚踏实地、一步一个脚印地前行。坚持不懈,砥砺前行,你就会发现,奋斗的过程才是最美好的收获。
一切都会过去,唯有你的奋斗精神永存。摒弃浮躁,坚持磨练,迎难而上,勇攀高峰,不屈不挠地向着梦想前进。相信自己,你一定能行!
人生就像一场马拉松,不是谁跑的最快,而是谁能坚持到终点。每一步都需要耐力和毅力,不断前行,不断超越自己,勇往直前,才能收获属于自己的荣耀。