day20-性能测试的分类
文章目录
- 性能测试的分类
- 压力测试
- 负载测试
- 配置测试
- 基准测试
- 并发测试
- 容量测试
- 稳定性测试
- 什么时候(什么情况下)需要进行何种性能测试
- 上新系统
- 扩容
- 调优
- 修复
- 秒杀/团购
- 性能测试的介入时机
- 性能测试常见的指标
- 性能测试中常见的专业术语
性能测试的分类
从大的方面:
- 基于代码的性能测试(关注点是函数或者方法执行的效率)
- 基于协议的性能测试(关注服务器端的性能)(重点)
- 客户端的性能测试(页面或者客户端的响应时间)
压力测试
在一定的软硬件、网络条件下,模拟用户高并发(峰值负载),持续一段时间,检测系统的各项性能指标,关注峰值下的系统的性能表现【秒杀、团购、抢票】
目的:监测被测系统在峰值下的运行情况,给最坏的情况(系统崩溃)设计预案
场景模型:门型场景
集合点
所有线程数在集合点同时发起请求,同时结束请求
负载测试
在一定的软硬件、网络条件下,通过改变负载的方式,监测系统各项性能指标,得到系统在正常工作的情况下,系统的最大用户数、最佳用户数,定位系统的瓶颈
场景模型:拱形场景
慢慢的增加并发线程数找到系统的最佳用户数。
理发店模型假设:
- 理发店共有3名理发师
- 每位理发师剪一个头的时间都是1小时
- 每个顾客所能容忍的等待时间是等待时间+剪发时间是3小时,而且等待时间越长,顾客的满意度越低,如果3个小时还不能剪完头发,顾客会立马走人。
当顾客数量是3人,响应时间无明显变化,资源利用率出现拐点时,就是最佳并发用户数。当超过3人时响应时间逐渐增加,到达9人时响应时间出现拐点,吞吐量开始下降,此时达到了最大并发用户数
所谓的性能,是负载、吞吐量、可接受的响应时间和资源利用率之间的一种平衡。
以下文字是摘录
对于一个确定的被测系统来说,在某个具体的软硬件环境下,它的“最佳并发用户数”和“最大并发用户数”都是客观存在。以“最佳并发用户数”为例,假如一个系统的最佳并发用户数是50,那么一旦并发量超过这个值,系统的吞吐量和响应时间必然会 “此消彼长”;如果系统负载长期大于这个数,必然会导致用户的满意度降低并最终达到一种无法忍受的地步。所以我们应该 保证最佳并发用户数要大于系统的平均负载。
要补充的一点是,当我们需要对一个系统长时间施加压力——例如连续加压3-5天,来验证系统的可靠性或者说稳定性时,我们所使用的并发用户数应该等于或小于“最佳并发用户数”——大家也可以结合上面的讨论想想这是为什么 _
而对于最大并发用户数的识别,需要考虑和鉴别一下以下两种情况:
当系统的负载达到最大并发用户数后,响应时间超过了用户可以忍受的最大限度——这个限度应该来源于性能需求,例如:在某个级别的负载下,系统的响应时间应该小于5秒。这里容易疏忽的一点是,不要把顾客因为无法忍受而离开时店内的顾客数量作为理发店的“最大并发用户数”,因为这位顾客是在3小时前到达的,也就是说3小时前理发店内的顾客数量才是我们要找的“最大并发用户数”。而且,这位顾客的离开只是一个开始,可能有会更多的顾客随后也因为无法忍受超长的等待时间而离开;
在响应时间还没有到达用户可忍受的最大限度前,有可能已经出现了用户请求的失败。以理发店模型为例,如果理发店只能容纳6位顾客,那么当7位顾客同时来到理发店时,虽然我们可以知道所有顾客都能在可容忍的时间内剪完头发,但是因为理发店容量有限,最终只好有一位顾客打道回府,改天再来。
对于一个系统来说,我们应该 确保系统的最大并发用户数要大于系统需要承受的峰值负载。
配置测试
改变软硬件配置(架构配置、参数配置),观测不同的配置条件下的性能状态
目的:找到最优的配置
基准测试
benchmark testing,在一定的软硬件、网络条件下,模拟单用户操作系统,监测系统各项性能指标。
目的:为后面深入的性能测试做一个数据对比
并发测试
测试同一模块、同一应用在高并发的情况下,接口工作是否正常
目的:主要是检查应用或者是接口在多用户情况下,是否存在缺陷(比如死锁等)
容量测试
在一定的硬件、网络条件下,改变数据库的容量,模拟多用户,监测各项性能指标的过程
目的:寻找数据库的容量的极限值
稳定性测试
主要强调长时间、正常负载情况下,观测系统各项指标的稳定性,不会出现致命的问题
比如7*24小时
一般至少是8小时、24小时、48小时
目的:检验系统长时间运行,系统的稳定性、是否有异常表现(宕机、出现致命问题等)
什么时候(什么情况下)需要进行何种性能测试
上新系统
- 用户场景(大量用户、同时使用、某个时间段内使用)
- 基准测试、负载测试、压力测试、容量测试
扩容
- 分析了解历史系统自身的性能表现,适当的扩容
- 基准、负载、压力、容量
调优
- 针对已上线的系统越来越慢,对系统进行优化配置,提升性能表现
- 基准测试、配置测试
修复
- 解决线上系统的开发死锁、内存泄漏等问题
- 并发测试
秒杀/团购
- 基准、负载、压力
性能测试的介入时机
是在功能、接口测试都已经完成之后再来做性能
性能测试常见的指标
- 响应时间
- 吞吐量
- 事务的处理能力
- 资源利用率
- 错误率
性能测试中常见的专业术语
- 集合点
- 关联
- 检查的:断言
- 用户数:在线用户数、并发用户数、系统用户数
- 并发用户数<在线用户数<系统用户数
- PV
- 页面访问量PV
- 客户端向服务器提交的请求的数量,通常是作为网站系统的处理能力的衡量标准
- UV
- Unique Visitor:独立用户访问量
- 根据用户数量来进行统计,访问系统一次只能算一个UV
day20-性能测试的分类相关推荐
- 【性能测试】性能测试基础:性能测试的概念、分类、场景和设计要点
目 录 引 言 1 性能测试的基本概念 2 性能测试的分类 2.1 负载测试 2.2 压力测试 2.3 基准测试 2.4 配单测试 2.5 容量测试 2.6 稳定性测试 2.7 扩展性测试 2 ...
- 性能测试概念以及分类
文章目录 1.性能测试的相关概念 2性能测试的分类 1.性能测试的相关概念 并发数: 狭义:同一时刻,访问同一系统,同一功能的用户数 广义用户数:同一时刻向系统发起请求的用户数量 并发用户数:同一时间 ...
- 在做性能测试之前需要知道什么
以下是我自己录制的关于这篇文章的一小段视频,有兴趣的可以下载看看 https://yunpan.cn/cPQc4mm2DjbMu 访问密码 a76f //此篇摘抄于虫师博客,个人觉得通俗易懂 关于理 ...
- 性能测试关注点整理总结
作为软件测试人员,我们经常会遇到压力测试.稳定性测试.功能测试.性能测试.兼容性测试等等,有时在工作中潜移默化的就已经在使用这些测试方法中包含的点,但是我们没有太在意去总结梳理,那么每个测试方法的关注 ...
- 性能测试关注点整理总结!
作为软件测试人员,我们经常会遇到压力测试.稳定性测试.功能测试.性能测试.兼容性测试等等,有时在工作中潜移默化的就已经在使用这些测试方法中包含的点,但是我们没有太在意去总结梳理,那么每个测试方法的关注 ...
- Libsvm分类步骤
1. 样本集的整理:提取特征,以LIBSVM指定格式存储. 2. 特征的标准化处理:特征的缩放Scaling,避免量纲的影响. 3. 选择合适的核函数类型 4. 优选核函数的参数与C 采用:交叉验证( ...
- 不确定规划及应用代码_性能测试划分之应用领域
性能测试划分 性能测试划分有很多种,测试方法也有很多种,更确切的说是由于测试方法的不同决定了测试划分的情况,但在测试过程中性能测试的划分没有绝对的界限,常用的有压力测试.负载测试和并发用户测试等. 性 ...
- 性能测试和性能分析的基础概念
1.1. 性能测试的基础概念 性能可以理解为一个系统实现其功能的能力,从宏观上可以描述为系统能够稳定运行,高并发访问时系统不会出现宕机,系统处理完成用户请求需要的时间,系统能够同时支撑的并发访问量 ...
- 并发测试工具_性能测试工具基本工作原理及基本操作流程
性能测试的基本概念 性能测试:是指在特定情况下测试系统如何执行的.资源的使用.可扩展性和可靠性也是性能测试的范畴.性能测试是性能工程的一个子集,主要发现软件架构以及设计导致的性能问题. 性能测试的目标 ...
- 57期性能测试_0621
1.编写jmeter脚本的方式 1) badboy 录制 2)jmeter 自带的录制控制器 3) 手写脚本 2.手动编写jmeter 性能测试脚本 性能测试三要素:接口测试.真实场景.多线程 2.1 ...
最新文章
- 多个Finder方法的外部内容类型
- Delphi CxGrid 汇总(3)
- volatile修饰的变量_看了这篇volatile详细介绍,面试你会害怕?
- MicroPython 1.8.6重新支持512K的模块
- 使用HttpClient消费ASP.NET Web API服务
- 算法研究:插入类排序(简单插入,折半插入,希尔排序)
- CSS3 Media Queries 详细介绍与使用方法,Responsive Web Design 必备技术, 响应式设计
- python 可迭代对象_Python3学习笔记(十四):可迭代对象、迭代器和生成器
- prim算法_数据结构 7.4.1 最小生成树 Prim
- xshell和xftp免费版官方(家庭、学校版)下载
- 隐藏Magisk、LSPosed、Root等痕迹
- 抽奖活动的奖品怎么设置?
- 神奇的夏时令——本来设置好的日期在保存完成后少了一天?
- 基于51单片机的火灾预警系统设计
- Worktile 中百万级实时消息推送服务的实现
- python中pip的使用 安装 升级 卸载包
- 美国计算机专业四年毕业率达多少,卡内基梅隆大学毕业率知多少
- 2020第十一届蓝桥杯国赛JAVA B组真题解析(带源码及解析)
- 输出某个日期是该年的第几天
- login: Could not determine audit condition 解决方案
热门文章
- flash打造动漫中另一种侧面眨眼效果
- 网络层 路由器工作原理
- 2022年蚌埠市商标费用情况——注册规费以及代理收费
- EPLAN一敲键盘就卡死
- 记KBE多level使用
- 深度学习入门基于Python的理论与实现_第一章_Python入门(原创笔记)
- python中 “%.2f“%num与{:.2f}.format(num)
- 甄享减法人生 柯罗芭KLOVA 2022秋冬衣橱的全新打开方式
- 模糊图像检测(c++)
- 2016湖南湘潭邀请赛 - 2019牛客国庆集训派对day6