day20-性能测试的分类

性能测试的分类

从大的方面:

  • 基于代码的性能测试(关注点是函数或者方法执行的效率)
  • 基于协议的性能测试(关注服务器端的性能)(重点)
  • 客户端的性能测试(页面或者客户端的响应时间)

压力测试

在一定的软硬件、网络条件下,模拟用户高并发(峰值负载),持续一段时间,检测系统的各项性能指标,关注峰值下的系统的性能表现【秒杀、团购、抢票】

目的:监测被测系统在峰值下的运行情况,给最坏的情况(系统崩溃)设计预案

场景模型:门型场景

集合点

在这里插入图片描述

所有线程数在集合点同时发起请求,同时结束请求

负载测试

在一定的软硬件、网络条件下,通过改变负载的方式,监测系统各项性能指标,得到系统在正常工作的情况下,系统的最大用户数、最佳用户数,定位系统的瓶颈

场景模型:拱形场景

在这里插入图片描述

慢慢的增加并发线程数找到系统的最佳用户数。

理发店模型假设:

  1. 理发店共有3名理发师
  2. 每位理发师剪一个头的时间都是1小时
  3. 每个顾客所能容忍的等待时间是等待时间+剪发时间是3小时,而且等待时间越长,顾客的满意度越低,如果3个小时还不能剪完头发,顾客会立马走人。

在这里插入图片描述

当顾客数量是3人,响应时间无明显变化,资源利用率出现拐点时,就是最佳并发用户数。当超过3人时响应时间逐渐增加,到达9人时响应时间出现拐点,吞吐量开始下降,此时达到了最大并发用户数

所谓的性能,是负载、吞吐量、可接受的响应时间和资源利用率之间的一种平衡。

以下文字是摘录

对于一个确定的被测系统来说,在某个具体的软硬件环境下,它的“最佳并发用户数”和“最大并发用户数”都是客观存在。以“最佳并发用户数”为例,假如一个系统的最佳并发用户数是50,那么一旦并发量超过这个值,系统的吞吐量和响应时间必然会 “此消彼长”;如果系统负载长期大于这个数,必然会导致用户的满意度降低并最终达到一种无法忍受的地步。所以我们应该 保证最佳并发用户数要大于系统的平均负载。

要补充的一点是,当我们需要对一个系统长时间施加压力——例如连续加压3-5天,来验证系统的可靠性或者说稳定性时,我们所使用的并发用户数应该等于或小于“最佳并发用户数”——大家也可以结合上面的讨论想想这是为什么 _

而对于最大并发用户数的识别,需要考虑和鉴别一下以下两种情况:

  1.          当系统的负载达到最大并发用户数后,响应时间超过了用户可以忍受的最大限度——这个限度应该来源于性能需求,例如:在某个级别的负载下,系统的响应时间应该小于5秒。这里容易疏忽的一点是,不要把顾客因为无法忍受而离开时店内的顾客数量作为理发店的“最大并发用户数”,因为这位顾客是在3小时前到达的,也就是说3小时前理发店内的顾客数量才是我们要找的“最大并发用户数”。而且,这位顾客的离开只是一个开始,可能有会更多的顾客随后也因为无法忍受超长的等待时间而离开;
    
  2.          在响应时间还没有到达用户可忍受的最大限度前,有可能已经出现了用户请求的失败。以理发店模型为例,如果理发店只能容纳6位顾客,那么当7位顾客同时来到理发店时,虽然我们可以知道所有顾客都能在可容忍的时间内剪完头发,但是因为理发店容量有限,最终只好有一位顾客打道回府,改天再来。
    

对于一个系统来说,我们应该 确保系统的最大并发用户数要大于系统需要承受的峰值负载。

配置测试

改变软硬件配置(架构配置、参数配置),观测不同的配置条件下的性能状态

目的:找到最优的配置

基准测试

benchmark testing,在一定的软硬件、网络条件下,模拟单用户操作系统,监测系统各项性能指标。

目的:为后面深入的性能测试做一个数据对比

并发测试

测试同一模块、同一应用在高并发的情况下,接口工作是否正常

目的:主要是检查应用或者是接口在多用户情况下,是否存在缺陷(比如死锁等)

容量测试

在一定的硬件、网络条件下,改变数据库的容量,模拟多用户,监测各项性能指标的过程

目的:寻找数据库的容量的极限值

稳定性测试

主要强调长时间、正常负载情况下,观测系统各项指标的稳定性,不会出现致命的问题

比如7*24小时

一般至少是8小时、24小时、48小时

目的:检验系统长时间运行,系统的稳定性、是否有异常表现(宕机、出现致命问题等)

什么时候(什么情况下)需要进行何种性能测试

上新系统

  • 用户场景(大量用户、同时使用、某个时间段内使用)
  • 基准测试、负载测试、压力测试、容量测试

扩容

  • 分析了解历史系统自身的性能表现,适当的扩容
  • 基准、负载、压力、容量

调优

  • 针对已上线的系统越来越慢,对系统进行优化配置,提升性能表现
  • 基准测试、配置测试

修复

  • 解决线上系统的开发死锁、内存泄漏等问题
  • 并发测试

秒杀/团购

  • 基准、负载、压力

性能测试的介入时机

是在功能、接口测试都已经完成之后再来做性能

性能测试常见的指标

在这里插入图片描述

  • 响应时间
  • 吞吐量
  • 事务的处理能力
  • 资源利用率
  • 错误率

在这里插入图片描述

性能测试中常见的专业术语

  • 集合点
  • 关联
  • 检查的:断言
  • 用户数:在线用户数、并发用户数、系统用户数
    • 并发用户数<在线用户数<系统用户数
  • PV
    • 页面访问量PV
    • 客户端向服务器提交的请求的数量,通常是作为网站系统的处理能力的衡量标准
  • UV
    • Unique Visitor:独立用户访问量
    • 根据用户数量来进行统计,访问系统一次只能算一个UV
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值