文章目录
- 前言
- 一、性能测试概述
- 二、常见的性能测试指标
- 2.1 并发
- 2.2 响应时间
- 2.3 事务
- 2.4 点击率
- 2.5 吞吐量
- 2.6 资源利用率
- 三、性能测试的分类
- 3.1 一般性能测试
- 3.2 负载测试
- 3.3 压力测试
- 3.4 稳定性测试
- 总结
前言
一、性能测试概述
(1)概念 :为了发现系统性能问题或获取系统性能相关指标而进行的测试。⼀般在真实环境、特定负载条件下,通过工具模拟实际软件系统的运行及其操作,同时监控性能各项 指标,最后对测试结果进行分析来确定系统的性能情况。
(2)常见的性能问题:
查询数据时间过长,网速很慢,服务器无响应,查询数据很长时间才显示列表
(3)举例说明:
以购物软件为例:1)购物过程中页面突然无法打开,刷新后可以重新打开2)双十一期间无法进入商品页面3)页面加载时间过长,需要消耗用户大量的等待时间
二、常见的性能测试指标
2.1 并发
(1)并发数定义 :并发用户数。
- 从业务层面看,并发用户数指的是实际使用系统的用户总数。
- 从后端服务器层面看,指的是web服务器在一段时间内处理浏览器请求而建立的http连接数或生成的处理线程数
举例说明:
案例:一个已经投入运行的web系统,有5000名员工使用,最多同时有2500人使用,用户分别进行浏览页面、填写订单、提交订单、查询订单的操作。那么这个系统的业务并发用户数是2500,实际并发用户数是提交订单和查询订单操作的用户。
2.2 响应时间
(1)定义:
- 应用系统从请求发出开始,到客户端接收到最后一个字节数据所消耗的时间。
- 对于web系统而言,系统响应时间包含前端展现时间和系统响应时间。
(2)响应时间:
- 前端展现时间: 页面渲染时间
- 系统响应时间: 包含服务器、数据库、通讯网络等响应时间。
2.3 事务
1)事务是衡量系统处理能力的重要指标
2)事务通过数越高,性能越好(这是相对的,因为不同的系统要求不同,有些事务比较复杂;如提交订单事务,需要新增订单数据、用户账户扣除金额、以及对商品的库存等进行修改)
3)每秒事务通过数(Transaction Per Second,简称TPS)
2.4 点击率
(1)定义:代表用户每秒向服务器提交的请求数,点击率越大,服务器的压力越大
(2)注意:不是鼠标的一次点击,一次点击可能有多个请求。
2.5 吞吐量
(1)定义:
单位时间内处理的并发数,直接体现软件系统负载承受能力。吞吐量越高,系统承受的并发越多,性能越好。
(2)举例说明:
有AB两种场景。A场景,有100个并发用户,每个用户每隔1秒发出一个请求。
B场景,有1000个并发用户,每个用户每隔10秒发送一个请求。
A和B场景的吞吐量相同都是每秒100个请求。
但是A场景思考时间短,所以A场景占用的系统资源更多。
2.6 资源利用率
(1)资源利用率定义不同系统资源的使用情况。包含CPU,内存,硬盘,网络等。
三、性能测试的分类
3.1 一般性能测试(基准测试)
基准测试(Benchmark Testing)又称单用户测试,主要用于监测被测系统在较低压力下的运行状况并记录相关数据。
当性能测试环境确定以后,通常选取业务模型中的重要业务做基准测试,对被测系统施加一定压力,从而获取被测系统在单用户运行情况下的各项性能指标,为多用户并发测试和混合场景测试等提供参考依据
3.2 负载测试
(1)定义:
负载测试(Load Testing)是性能测试的一种测试类型,用于评估被测系统在预期的不同负载下的行为。
负载测试关注系统处理不同负载的能力,这些负载可通过控制并发用户或者进程的数量来实现。进行负载测试时,通过对系统不断增加并发访问负载,监测系统性能的变化,直到系统的某项或多项性能指标达到安全临界值,最终确定在满足该安全临界值的性能指标下,系统所能承受的最大负载量。
简而言之,负载测试是通过逐步加载的方式来确定系统的处理能力。
(2)举例说明:
负载测试类似于举重运动,通过不断给运动员增加重量,确定运动员在其身体状况保持正常的情况下所能举起的最大重量。通过负载测试可以获取系统能够达到的峰值指标。
3.3 压力测试
(1)压力测试的定义
压力测试(Stress Testing)用于评估被测系统在高于预期、高于指定容量负载需求或低于最少需求资源的条件下的行为。
(2)压力测试关注点
压力测试关注被测系统处理超出预期或特定峰值负载的能力,也可以用于评估系统在资源匮乏时的处理能力,比如在可用的计算能力、带宽和内存资源不足的条件下系统的表现。
通过对被测系统进行压力测试,也能找出被测系统的性能拐点,获得系统所能提供的最大服务级别(系统所能承受的最大压力),评估系统在峰值负载或超出最大负载情况下的处理能力。压力测试主要用于性能诊断、性能调优和容量规划等场景。
压力测试和负载测试的区别?
压力测试与负载测试不同。
- 负载测试是在保持性能指标要求的前提下测试系统能够承受的最大负载,
- 而压力测试则是测试系统性能达到极限的状态。
举例说明:
例如,软件系统要求的响应时间为2秒。进行负载测试时发现,当访问量达到1万时,系统响应时间不超过2秒,而当访问量超过1万时,系统响应时间则会超过2秒,那么,在满足系统响应时间指标的前提下,该系统能够承受的最大访问量是1万。进行压力测试时,则可继续增加系统的访问量,并观察系统的性能变化。
例如,当系统访问量增加到2万时,发现系统响应时间延迟到5秒,而当访问量增加到3万时,系统则崩溃,无法做出响应。由此可以确定系统能达到的极限访问量是3万
3.4 稳定性测试
定义:
在负载测试的基础上,执行较长时间的测试以检查系统的稳定性。
通常较长时间指3*24小时以上