软件测试之【性能测试】

目录

一、性能测试的目的

1、作用:多快好省

2、性能测试主要针对哪些方面测试

 二、性能测试的五大指标

1、响应时间

2、并发用户数

3、吞吐量(TPS) 

4、思考时间

 5、资源指标

三、测试方法

1、负载测试(找到最优的负载量)

2、压力测试(找到极限负载量)

3、稳定性测试(关注长时间运行稳定性)

4、并发测试(大量用户同一时间访问某个业务的运行情况)

5、验收测试

6、基准测试

7、配置测试

8、恢复测试

四、性能测试流程


一、性能测试的目的

性能测试就是通过性能压测工具,通过特定方式,对系统施加一定的压力、正常、异常负载以及峰值来对系统实施压力,得到各项性能指标,保证系统的性能需求。

1、基本目的:验证是否达到用户的性能指标,发现软件中存在的性能瓶颈和优化

2、评估系统的能力:帮助做出决策,为后续性能优化提供数据

3、识别系统中的弱点,修复系统的瓶颈和薄弱的地方

4、系统调优:重复运行测试,验证调整系统的活动是否得到了预期的结果,改进性能。如:长时间的测试执行导致内存泄漏

5、 验证稳定性:在一定的生产负荷下执行测试一定的时间,评估系统稳定性和可靠性是否满足要求

总结:

  1. 评估当前系统的性能
  2. 找出系统存在的性能瓶颈,并调优
  3. 预估未来的业务,看系统性能是否满足要求

1、作用:多快好省

多:高并发

快:延时、响应时间

好:稳定性(长时间运行)

省:资源的使用率

2、性能测试主要针对哪些方面测试

  1. 后端代码的性能
  2. 应用服务器、数据库服务器、系统加否是否存在瓶颈
  3. 服务器资源的消耗

 二、性能测试的五大指标

1、响应时间

用户操作一个请求得到响应的时间

客户端呈现的时间、请求/响应数据网络传输时间、应用服务器处理时间、数据库系统处理时间

即时响应:通常在毫秒级别,小于500毫秒,如:聊天、金融交易

快速响应:通常在几百毫秒(100-500毫秒),适用于大多数web应用,用户可以在短时间内反馈

中等响应:在数百毫秒到1秒之间

较长响应:在1秒到数秒之间

长时间响应:超过数秒,影响用户体验,导致用户不满,或者放弃请求

影响接口响应时间的因素:

请求的复杂性、数据量的大小、网络延迟、服务器负载、缓存、异步处理、合并操作等

2、并发用户数

 大量用户在同一时间访问同一个业务

广义并发:不一定是同一个请求,例如:双十一抢购

严格并发:同一个请求

在线用户数,对系统的内存影响最大(用户登录产生session)

3、吞吐量(TPS) 

单位时间内系统处理用户的请求数。吞吐量可以反应服务器承受的压力

F = VU*R/T

F:吞吐量

VU:虚拟用户个数

R:是每个虚拟用户发出的请求数

T:性能测试所用的时间

4、思考时间

操作之间的时间间隔,主要是为了更真实的模拟用户操作

 5、资源指标

CPU使用率一般不超过80%

内存不高于80%

磁盘不高于90%

网络带宽不超过80%

三、测试方法

1、负载测试(找到最优的负载量)

 单接口负载测试场景:通过逐渐对一个接口进行施压,直到出现性能拐点,获得被测接口的最大指标

混合负载压测场景:为了验证整个业务的最大最优性能体现,重点在于模型的设计,模型来自于生产环境的日志,或者产品经理给的指标

2、压力测试(找到极限负载量)

关注软件系统极限负载的性能,着重于软件本身。识别系统的弱点和在极限负载下,查看程序结果如何。规划能力,预估系统的使用情况

期望:面临压力时,能够保证系统稳定,速度可以变慢,但是系统不能崩溃

3、稳定性测试(关注长时间运行稳定性)

测试系统在一定负载下,长时间运行后是否发生问题

系统需要时间积累到一定量的程度

一般是程序占资源却不能及时释放引起的,比如内存泄漏

客户端和服务器连接通路,不能有效地及时释放

4、并发测试(大量用户同一时间访问某个业务的运行情况)

验证系统的并发处理能力

5、验收测试

验收性能测试:模拟用户环境,测试系统是否满足要求

特点:确保用户的环境,用户要求的性能指标、执行、分析结果。验收性质一定要有客观的结果,分析如何开展验收测试

性能测试需求分析:向客户了解用户数,高频/常用的功能,场景,运行情况(考虑并发时间段30分钟、2h、7*24h、防火墙、负载均衡器都要长时间测试)

了解软件、硬件的情况

6、基准测试

相当于迭代版本对之前版本的功能测试,新增一个模块,判断模块对系统性能的影响

一般性能测试是单接口基准性能测试,也就是一个用户测试接口5min,目的是为了没有任何压力的情况下,查看各项性能指标

7、配置测试

对被测系统的软硬件环境测试进行调整,了解对系统性能影响成都,找到系统各项资源最优分配原则

8、恢复测试

系统局部发生问题,是否能继续使用系统,该问题对用户影响的严重程度,能否快速从错误状态恢复到正常状态

四、性能测试流程

性能测试需求分析  --->  性能测试计划  --->  性能测试数据设计  --->  性能测试执行  ---> 性能测试分析和报告

1、性能测试需求分析

做性能测试的条件,项目的熟悉,明确性能测试范围,性能测试指标,初步性能测试策略等

1年或者3年后需要达到什么样的性能

例如:

(1)熟悉被测系统

  • 熟悉被测系统的业务功能
  • 熟悉被测系统的技术架构

(2)明确性能测试内容

  • 从业务角度明确测试内容---确定关键业务
  • 从技术角度明确测试内容
  1. 逻辑复杂度高,CPU密集运算大的地方,考量服务器CPU在预定性能指标下是否达标
  2. 数量量大的业务很占用系统内存,考量服务器内存预定性能指标是否达标

(3)明确性能测试策略--负载、压力、稳定性、并发

(4)明确性能测试的指标

  • 需求无明确指标------通过查找相关资料,和类似的系统对比(竞品分析),跟客户沟通,以及对未来流量的预估
  • 有明确需求指标------例如:下订单并发用户2个,拼平均响应时间小于3s,CPU使用率小于85%

有明确的指标根据分析结果和预期指标对比即可

2、性能测试计划

怎么安排时间(测试项目的开始结束时间、各环节的时间安排)、人员、使用工具(并发工具、监控工具、 分析工具、辅助工具)、场景模型(软硬件环境,网络环境)、方法

性能测试计划和方案:

(1)项目背景

(2)测试目标

(3)人员安排

(4)时间进度安排

(5)性能测试环境(系统架构、软硬件配置、测试数据)

(6)性能测试工具、监控工具

(7)测试策略

  • 确定性能测试类型(负载、压力、并发)
  • 确定性能测试场景(单一业务场景、混合场景)

(8)风险控制

3、性能测试数据设计

测试环境、场景测试、测试用例、脚本开发(录制、自己编写)、测试数据

如:测试环境搭建与脚本编写、录制、执行

环境搭建:

根据测试用例的场景展现出来

提示:

(1)虚拟用户数量及启动虚拟用户方式

(2)场景相关设置,如集合点

(3)脚本是否存在以来关系(登录和注册)

运行脚本

注意:

(1)负载的测试机不能运行设定的虚拟用户数

(2)没有预热过程(本地多次测试可能会有缓存,需要注意)

(3)没有虚拟用户的真实环境

(4)性能用例运行测试过少

4、性能测试执行

执行脚本、记录数据,通过工具执行场景

5、性能测试分析和报告

性能分析:系统框架分析、指标分析、性能问题分析

性能总结报告:测试环境、性能策略人员分配、场景描述、指标对比、问题描述、结果与原因、优化方案等 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值