当前位置:   article > 正文

史上最细,企业性能测试步骤详细,测试老鸟带你一篇打通!_企业性能测试规划

企业性能测试规划


前言

1、性能测试流程

性能测试的步骤大概分四个阶段:
需求分析阶段、准备阶段、执行阶段、报告整理和总结阶段

需求分析阶段:

1)熟悉项目相关的资源,如:架构设计,软硬件环境配置,线上业务运营数据(交易量,用户活跃度,请求分布等)

2)根据运营数据或者指标,确定性能测试要达到的目标,如:支持xx并发,tps要达到多少,响应时间要达到多少,CPU,网络,IO的负载情况等等

3)设计性能测试计划:与功能测试差不多

–项目背景;
–项目结构;
–测试功能;
–软硬件资源准备;
–时间/人力安排;
–测试工具和监控工具;
–风险评测;

设计性能测试场景
主要有以下场景:

– 基准测试:了解系统在静置时的资源消耗,如cpu,io,网络带宽,网络连接的情况。如果有干扰,务必排除。

– 单次连续请求测试:1次连续请求情况下的tps,响应时间,服务器资源消耗情况,主要用于参考。

– 负载测试:逐渐增加并发请求数,查看tps,响应时间,错误率,服务器资源消耗情况,主要用于分析最大性能。

– 压力测试:在最大性能的临界点上保持压力进行测试,查看服务器在高压力情况的处理情况。

– 稳定性测试:连续xx天内,在一定的并发下进行测试,查看服务器运行情况是否能达到需求设计

准备阶段:

–搭建测试环境
–设计测试用例
–准备测试数据
–编写测试脚本

执行阶段:

–运行性能监控工具
–按照测试场景,执行测试用例。
–分析:分析性能瓶颈,针对不同的业务场景,分析的侧重点也不一样,比如计算密集型,IO密集型的业务,还有线程锁,垃圾回收机制等等
–调优

结果阶段:

–总结测试结果,输出性能测试报告

2、性能测试需要用到的技术

性能测试原理介绍:

性能测试,本质就是模拟客户端请求,对服务器进行高并发,高流量的压力测试,从而验证服务器提供服务的能力,并找出瓶颈点,提出或者进行优化。

问题:
怎么模拟高并发,高流量?
怎么进行性能优化?

怎么模拟高并发:
– 使用多线程技术,模拟高并发。
– 如果并发太高,如10w并发以上,则需要使用负载均衡和分布式处理技术,jmeter工具支持多台机器作为负载机。

怎么模拟高流量:
– 在每个请求中塞入大量数据即可

怎么进行性能优化:
那么怎么提升性能呢?我们首先介绍一个衡量性能标准的一个参数:TPS(Transaction Per Second 每秒事务请求数)。

我们再看一下TPS计算公式:
TPS = 总请求数/ 平均响应时间

总请求数:在一段时间内发送的所有请求数量
平均响应时间:所有请求的平均响应时间

通过这个公式,我们可以知道,当分母越小时,TPS越大。所以要提升性能,我们只需要提高平均响应时间就可以了。那么怎么减少平均响应时间呢?

下面我们先看一个请求从客户端到服务端的流程

A1

图中,客户端发送请求经过了互联网到服务器,服务器经过内部处理,从数据库中读取了数据,然后把数据返回给客户端。

这过程中,经历的时间大致可以分为:C1+T1+T2+T3+N2+T4+T5。

所以,要把平均响应时间缩小,我们只需要缩小这8个时间就够了,其中主要包括:

网络时间(T1+T2+T3+T4+T5),
服务器内部处理时间(N1),
数据库处理时间(N2),
客户端处理时间(C1)。

所以我们可以就可以从这三个方向去优化:提高网络传输速率,服务器内部处理速率,数据库处理速率,客户端处理速率,其中客户端处理速度也和服务端优化策略基本相同

性能优化:

网络传输速率的提高:
1)采用光纤,配置路由表,缩短网络传输距离与路由器跃点数量。
2)如果是实时服务,那么需要配置缓存服务器,尽量避免缓存穿透

服务器内部处理速率的提高:

1)计算密集型:优化思路是提高CPU利用率,采用多线程的思路进行。但是线程数量不能超过cpu核心数。因为线程数量超过cpu核心数后,cpu会分片执行超过部分的线程,会增加cpu读取线程缓存的压力,使计算能力下降

2)IO密集型:
– 优化思路是提高存储的效率,如使用固态硬盘,阵列,分布式等技术。

– 由于IO密集型中,CPU可能会等待IO操作完成。所以我们可以使用超过CPU核心数的线程来访问IO,从而提高性能(但如果磁盘繁忙,线程数再多也只是在磁盘队列中排队,增加CPU线程数来访问IO的方法,适用于IO读/写操作并不繁忙,但是需要长时间寻址的场景)

– 注意:因为磁盘内部只有1个线程处理IO操作,所以要真正实现磁盘的并发,需要使用多个磁盘,也就是磁盘阵列

数据库处理速率:

数据库直接和IO进行交互,所以提高IO性能,能提高数据库性能。
数据库有自己的数据结构,所以优化数据存储和查询的相关算法,也能提高数据库性能

索引优化
缓存优化
数据库连接优化
数据库查询语句优化
分表分库
分布式处理

性能优化方向也可以用一个思维导图来表示:

硬件优化:加cpu升级,cpu阵列;使用ssd固态硬盘;主板用最先进的,内存用最高的,网络用专线等等。

操作系统优化:

windows操作系统,去掉不需要的服务,根据实际业务场景调整线程,虚拟内存,缓存的大小等相关配置项,需要专业人士操作

Linux操作系统:与windows基本相同

中间件优化:根据不同的业务场景,选择不同的中间件,调整配置等等,如nginx中启用的cpu核心数量等等

架构优化:采用分布式存储架构,分布式服务器架构,负载均衡等

代码优化:许多问题都是代码的问题,如果代码问题能准确定位,可以考虑优化代码。

数据库优化:优化索引,配置,数据库连接,算法等等

算法优化:这个不提了,算法属于底层的优化,需要非常扎实的计算机基础知识和优秀的逻辑思维以及灵感

其他:线程,进程,网络等等

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

在漫长的奋斗路上,坚持不懈地迈步向前,即便艰难重重,也要保持信念与勇气,相信自己的努力终将开花结果,迎来属于自己的辉煌时刻。

奋斗的道路上充满挑战与荆棘,但只要坚定信念,持之以恒,努力拼搏,那绚烂的成功之花终将在不懈的奋斗中怒放。

勇敢直面困难,坚定前行的脚步,每一份努力都在铺就通往成功的路途。相信自己,勇敢奋斗,终将收获属于自己的辉煌与成就。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/794757
推荐阅读
相关标签
  

闽ICP备14008679号