文章目录

  • 性能测试的分类
    • 压力测试
    • 负载测试
    • 配置测试
    • 基准测试
    • 并发测试
    • 容量测试
    • 稳定性测试
  • 什么时候(什么情况下)需要进行何种性能测试
    • 上新系统
    • 扩容
    • 调优
    • 修复
    • 秒杀/团购
  • 性能测试的介入时机
  • 性能测试常见的指标
  • 性能测试中常见的专业术语

性能测试的分类

从大的方面:

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

压力测试

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

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

场景模型:门型场景

集合点

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

负载测试

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

场景模型:拱形场景

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

理发店模型假设:

  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

day20-性能测试的分类相关推荐

  1. 【性能测试】性能测试基础:性能测试的概念、分类、场景和设计要点

    目  录 引  言 1  性能测试的基本概念 2  性能测试的分类 2.1 负载测试 2.2 压力测试 2.3 基准测试 2.4 配单测试 2.5 容量测试 2.6 稳定性测试 2.7 扩展性测试 2 ...

  2. 性能测试概念以及分类

    文章目录 1.性能测试的相关概念 2性能测试的分类 1.性能测试的相关概念 并发数: 狭义:同一时刻,访问同一系统,同一功能的用户数 广义用户数:同一时刻向系统发起请求的用户数量 并发用户数:同一时间 ...

  3. 在做性能测试之前需要知道什么

    以下是我自己录制的关于这篇文章的一小段视频,有兴趣的可以下载看看 https://yunpan.cn/cPQc4mm2DjbMu  访问密码 a76f //此篇摘抄于虫师博客,个人觉得通俗易懂 关于理 ...

  4. 性能测试关注点整理总结

    作为软件测试人员,我们经常会遇到压力测试.稳定性测试.功能测试.性能测试.兼容性测试等等,有时在工作中潜移默化的就已经在使用这些测试方法中包含的点,但是我们没有太在意去总结梳理,那么每个测试方法的关注 ...

  5. 性能测试关注点整理总结!

    作为软件测试人员,我们经常会遇到压力测试.稳定性测试.功能测试.性能测试.兼容性测试等等,有时在工作中潜移默化的就已经在使用这些测试方法中包含的点,但是我们没有太在意去总结梳理,那么每个测试方法的关注 ...

  6. Libsvm分类步骤

    1. 样本集的整理:提取特征,以LIBSVM指定格式存储. 2. 特征的标准化处理:特征的缩放Scaling,避免量纲的影响. 3. 选择合适的核函数类型 4. 优选核函数的参数与C 采用:交叉验证( ...

  7. 不确定规划及应用代码_性能测试划分之应用领域

    性能测试划分 性能测试划分有很多种,测试方法也有很多种,更确切的说是由于测试方法的不同决定了测试划分的情况,但在测试过程中性能测试的划分没有绝对的界限,常用的有压力测试.负载测试和并发用户测试等. 性 ...

  8. 性能测试和性能分析的基础概念

    1.1.   性能测试的基础概念 性能可以理解为一个系统实现其功能的能力,从宏观上可以描述为系统能够稳定运行,高并发访问时系统不会出现宕机,系统处理完成用户请求需要的时间,系统能够同时支撑的并发访问量 ...

  9. 并发测试工具_性能测试工具基本工作原理及基本操作流程

    性能测试的基本概念 性能测试:是指在特定情况下测试系统如何执行的.资源的使用.可扩展性和可靠性也是性能测试的范畴.性能测试是性能工程的一个子集,主要发现软件架构以及设计导致的性能问题. 性能测试的目标 ...

  10. 57期性能测试_0621

    1.编写jmeter脚本的方式 1) badboy 录制 2)jmeter 自带的录制控制器 3) 手写脚本 2.手动编写jmeter 性能测试脚本 性能测试三要素:接口测试.真实场景.多线程 2.1 ...

最新文章

  1. 多个Finder方法的外部内容类型
  2. Delphi CxGrid 汇总(3)
  3. volatile修饰的变量_看了这篇volatile详细介绍,面试你会害怕?
  4. MicroPython 1.8.6重新支持512K的模块
  5. 使用HttpClient消费ASP.NET Web API服务
  6. 算法研究:插入类排序(简单插入,折半插入,希尔排序)
  7. CSS3 Media Queries 详细介绍与使用方法,Responsive Web Design 必备技术, 响应式设计
  8. python 可迭代对象_Python3学习笔记(十四):可迭代对象、迭代器和生成器
  9. prim算法_数据结构 7.4.1 最小生成树 Prim
  10. xshell和xftp免费版官方(家庭、学校版)下载
  11. 隐藏Magisk、LSPosed、Root等痕迹
  12. 抽奖活动的奖品怎么设置?
  13. 神奇的夏时令——本来设置好的日期在保存完成后少了一天?
  14. 基于51单片机的火灾预警系统设计
  15. Worktile 中百万级实时消息推送服务的实现
  16. python中pip的使用 安装 升级 卸载包
  17. 美国计算机专业四年毕业率达多少,卡内基梅隆大学毕业率知多少
  18. 2020第十一届蓝桥杯国赛JAVA B组真题解析(带源码及解析)
  19. 输出某个日期是该年的第几天
  20. login: Could not determine audit condition 解决方案

热门文章

  1. flash打造动漫中另一种侧面眨眼效果
  2. 网络层 路由器工作原理
  3. 2022年蚌埠市商标费用情况——注册规费以及代理收费
  4. EPLAN一敲键盘就卡死
  5. 记KBE多level使用
  6. 深度学习入门基于Python的理论与实现_第一章_Python入门(原创笔记)
  7. python中 “%.2f“%num与{:.2f}.format(num)
  8. 甄享减法人生 柯罗芭KLOVA 2022秋冬衣橱的全新打开方式
  9. 模糊图像检测(c++)
  10. 2016湖南湘潭邀请赛 - 2019牛客国庆集训派对day6