【性能测试】性能测试基础:性能测试的概念、分类、场景和设计要点
目 录
引 言
1 性能测试的基本概念
2 性能测试的分类
2.1 负载测试
2.2 压力测试
2.3 基准测试
2.4 配单测试
2.5 容量测试
2.6 稳定性测试
2.7 扩展性测试
2.8 负载测试VS压力测试
3 业务场景与设计要点
3.1 业务场景的划分
3.2 业务设计要点
3.2.1 测试目的
3.2.2 业务组成
3.2.3 数据规格
3.2.4 指标监测
引 言
“性能”一词对大部分来说并不陌生,在日常生活或工作中我们经常会听到关于性能的描述:
“这台电脑的性能也太差了吧,打开个软件都能卡半天!”
“新发布的小米11pro性能好强大啊!”
“这款处理器的性能真强劲,完全吊打……”
“打开个网页也要加载半天,这个网站的服务器性能也太差了吧……”
“看看我的新车,百米加速xxx秒,性能强的一批!”
虽说如此,但是你真的了解“性能”吗?你知道性能背后深层的意思吗?以软件测试中的服务器性能场景为例:
A:这个网站的服务器性能太差啦!
B:差在哪里?
A:加载网页的速度太慢了!
B:确定是服务器性能差?而不是你的网络不行?不是你的电脑不行?不是你打开的方式不对???
打破砂锅问到底,用量化的数据指标来代替直观的感受是我们性能测试需要做的事情。下面我们就来详细学习一下性能测试的基本知识吧!
1 性能测试的基本概念
性能测试在软件的质量保证过程中起着举足轻重的作用。特别是对于一些并发量大的大型网站来说,做好性能测试,找到性能瓶颈,并根据性能测试结果做出针对性的优化至关重要。比如各大电商平台在双11背后肯定做足了性能测试,否则一旦网站崩溃,带来的损失就不是亿点点了……
中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测。
2 性能测试的分类
根据测试的目的和手段来划分,性能测试可以划分为负载测试、压力测试、基准测试、配单测试、容量测试、稳定性测试和扩展性测试。如下图所示:
2.1 负载测试
系统在不同负载下的性能表现,通过负载测试能够测试出系统在各种负载下的性能变化曲线,发现系统的性能拐点,从而找出系统的最佳性能。举例:用户并发测试(递增并发用户数,查看系统性能指标变化)。
2.2 压力测试
系统在高强度负载下的性能表现,通过压力测试可以测试出系统能够承受的最大负载。压测是一种寻求系统介于正常和不正常之间临界值的一种负载测试。压测不仅关注高负载下系统是否正常运行,同时关注负载减小后,系统是否能够恢复。
2.3 基准测试
基准测试(benchmarking)是一种测量和评估软件性能指标的活动。在特定时期(系统稳定时)通过基准测试建立一个已知的性能水平(称为基准线),当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。基准测试可以比较系统在版本迭代过程中,各个性能指标的变化,为系统的版本迭代优化提供参考。
2.4 配单测试
也叫配置项测试,对被测系统的软硬件参数进行配置的测试。通过配单测试可以找出系统各项资源指标的最佳分配比。
2.5 容量测试
通过容量测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限状态下没有出现任何软件故障或还能保持主要功能正常运行。软硬件固定的情况下,对系统进行一定规模的数据量操作,观察系统各项性能指标是否正常。举例:电子商务网站所能承受的、同时进行交易或结算的在线用户数。
2.6 稳定性测试
通过对软件稳定性的测试可以观察在一个运行周期内、一定的压力条件下,软件的出错机率、性能劣化趋势等。进而大大减少软件上线后的崩溃卡死等现象,为软件的逐步优化提供方向及验证。在特定的负载下(正常或略高于正常的负载),在一段运行周期内,对被测系统进行一系列的正常操作,观察各个系统性能指标变化以及系统是否能够长期稳定运行。
2.7 扩展性测试
基础设施不需要经常变更,应用之间较少依赖或耦合,可以对需求变更快速响应。架构设计会考虑到未来功能的可扩展性,所以当系统增加新功能时,不需要对现有系统的结构和代码进行修改。系统集群的扩展性测试,观察系统在集群服务器增加时,整体性能是否稳步提升,集群中的每台服务器性能是否有额外损耗等。
2.8 负载测试VS压力测试
有些童鞋可能对负载测试和压力测试傻傻分不清楚,这边也查阅了一些资料,做了个总结,方便大家参考:
相同点:两种测试都是针对系统承受能力的测试,都是一种量的测试;
不同点:负载测试是观察系统在不同负载下的测试,旨在找出系统的性能拐点或最佳性能;压力测试是观察系统在高负载下的运行情况,旨在找出系统所能承受的最大负载以及系统在高压下再减压后系统恢复正常的能力。
3 业务场景与设计要点
业务场景顾名思义就是系统真实运行环境的场景,模拟性能测试场景的宗旨是尽可能还原业务现场真实的软硬件环境。在一些入围项目中,就需要尽可能按照入围测试的软硬件配置模拟性能测试场景。
3.1 业务场景的划分
性能测试的业务场景可以按照业务的组成以及测试目的和手段两个维度进行划分。
按照业务场景划分可以划分为单业务场景以及混合业务场景(也可以叫多业务场景)。顾名思义,单业务场景的性能测试就是针对单一业务的性能测试场景,比如交换机的接口带宽测试、网站的用户登陆测试、安防系统的视频取流测试等。混合业务场景的性能测试则是对多个业务进行综合性能测试,主要考察整个系统或者多个模块在真实业务场景下是否能够满足性能要求。
按照测试目的和手段划分性能测试场景,可以划分为:负载测试场景、压力测试场景、基准测试场景、配单测试场景、容量测试场景、稳定性测试场景和扩展性测试场景。与第二节描述类似,不再赘述。
3.2 业务设计要点
3.2.1 测试目的
目的是行动的依据,明确测试目的能够对整个性能测试的执行提供方向,是性能测试的第一步。只有明确了测试目的才能够选择恰当的测试方法进行性能测试,偏离目的的测试做的都是无用功。
明确测试目的需要确定以下几个要素:
- 被测目标:一个接口、一个功能点、一个功能集合、一个模块或整个系统等都可以是被测目标;
- 数据/操作规模:交换机单个接口的满流量、交换机的所有接口满带宽、网站的10w并发、服务器接口调用100w次等数据或操作的量级;
- 预期性能表现:网站稳定运行、服务器不崩溃、系统CPU 80%以内,系统响应时间不超过3s等衡量系统性能的指标。
3.2.2 业务组成
分析业务组成最关键的一点就是抽象出对测试目标有影响的因素或者业务,无关或者没有影响的业务不需要进行设计和叠加。分析业务组成的同时还需要理解业务流程之间的关系,比如测试电商网站是否能够承受1000w用户的并发操作,需要了解整个购物流程包括登陆、浏览商品、加入购物车、下单、付款等环节,并根据业务流配置合理的并发操作量(比如500w登陆、200w浏览商品、100w加入购物车、100w下单、100w付款)。这与每个环节都设计1000w并发量的测试目的是不同的。
3.2.3 数据规格
从3.2.2的分析我们可以知道,数据规格和业务组成是紧密相连的。在性能测试中,说到业务的同时,也会连着提到业务的数据量/数据规模。为了方便理解,此时的业务组成也可以抽象成是数据组成,因此数据规格可以描述为:
数据规格=数据组成+数据量/数据规模
结合上文,我们可以得出电商网站1000w的用户并发数据规格如下:
1000w用户并发=500w登陆+200w浏览商品+100w加入购物车+100w下单+100w付款
当然这个只是一个简要的过程,具体以实际业务为准哦。
3.2.4 指标监测
指标监测是指我们对系统做了一系列操作后,监测/监控系统的表现情况。一般情况,需要对这些指标进行量化,比如系统反应时间3s以内,CPU占用70%以内,网络传输不出现丢包,不出现进程死锁或系统挂死现象等等。切记不要用系统稳定运行这类抽象字眼一句话带过,这也是很多测试新人常犯的错误。
如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......~~~///(^v^)\\\~~~
【性能测试】性能测试基础:性能测试的概念、分类、场景和设计要点相关推荐
- 性能测试:基础(1)
性能测试分类 提起性能测试,可能很多互联网从业人员会感觉比较混淆(不仅仅只是测试人员会弄混淆,很多开发人员.管理人员对性能测试也都是一知半解).性能测试,它是属于测试领域一个专业细分领域,其涉及到的范 ...
- 性能测试入门基础知识总结
性能测试基础 进行性能测试,我们需要关注性能测试的哪些方面,如果能回答出以下几个问题(5W),我们就基本入门性能测试了,然后就需要我们通过实践,运用这些性能知识理论去为实践服务,帮助我们更好的检查和定 ...
- JMeter性能测试的基础知识和个人理解
JMeter性能测试的基础知识和个人理解 1. JMeter的简介 JMeter是Apache组织开发的开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常 ...
- Jmeter 性能测试的基础了解
最近项目上在对网站和wap做性能优化(目标是支持200个并发,在登录和课程详情页的相关操作),借此机会学习性能测试 1.了解性能测试的基础知识 2.性能测试的流程: 3.怎么样录制脚本: 4.怎样配置 ...
- Jmeter_性能测试(一):性能测试的概念,性能测试的流程和术语,性能测试脚本的制作和调试
Jmeter_性能测试(1):性能测试的概念 性能测试的概念 性能测试是指通过特定方式,对被测系统按照一定策略施加压力,获取系统 响应时间.TPS(Transaction Per Second).吞吐 ...
- 性能测试:基础(4)
一.性能测试三连问 1何时进行性能测试? 性能测试的工作是基于系统功能已经完备或者已经趋于完备之上的,在功能还不够完备的情况下没有多大的意义.因为后期功能完善上会对系统的性能有影响,过早进入性能测试会 ...
- 性能测试(一)性能测试是什么?有哪些分类?
一.什么是软件性能?什么是软件性能测试? 定义:软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性. 由定义可知性能关注的是软件的非功能特性, ...
- 《LoadRunner性能测试巧匠训练营》——3.3 场景监控实战
本节书摘来自华章计算机<LoadRunner性能测试巧匠训练营>一书中的第3章,第3.3节,作者:赵 强 邹伟伟 任健勇 更多章节内容可以访问云栖社区"华章计算机"公众 ...
- 性能测试 性能测试实战(八)Jmeter性能测试平台开发,性能测试平台架构解析 ,性能测试平台搭建 分布式性能压测平台 Jmeter分布式性能测试管理平台 性能测试平台示例案例 《完结篇》
文章目录 一.前言 二.Jmeter分布式性能测试平台 介绍 1.Jmter分布式性能测试平台 简介 2.Jmeter分布式性能测试平台 优秀案例1 3.Jmeter分布式性能测试平台 优秀案例2 4 ...
最新文章
- 如何理解依赖注入(DI)
- vue 心跳监控_【笔记】vue中websocket心跳机制
- 【BZOJ2768】[JLOI2010]冠军调查/【BZOJ1934】[Shoi2007]Vote 善意的投票 最小割
- 算法提高课-图论-有向图的强连通分量-AcWing 1174. 受欢迎的牛:tarjan算法求强连通分量、tarjan算法板子、强连通图
- 如何提高电脑运行速度_电脑运行速度慢的解决方法
- project-population
- 10个非常有用的CSS hack和技术
- css实现元素在div底部显示
- linux ntp时间同步
- POI写Word换行
- ear的英语怎么念_Dog是“狗”,ear是“耳朵”,Dog ear真不是“狗耳朵”
- Linux shell中2>1的含义
- python饼状图显示其比例_Python学习笔记(matplotlib篇)--使用matplotlib绘制饼状图
- Office XP 程序设计之局域网中怎么配置Office Web组件?
- 技嘉显卡性能测试软件,显卡性能与超频:性能高于公版,超频潜力可圈可点
- 摸鱼刷题||听说打工和摸鱼更配
- XShell远程登录华为云服务器
- C6能比C8快多少(Altera的FPGA速度等级)
- 【报错】unhandled error during execution of watcher callback
- Unity 打包快手
热门文章
- 正则表达式入门之位置匹配
- python try catch finally执行顺序_对python中的try、except、finally 执行顺序详解
- python调用api接口获取数据_python批量爬取NCBI基因注释并调用谷歌API批量翻译
- SPL - 写着简单跑得又快的数据库语言
- 关于 SAP 电商云 Spartacus UI package.json 中的 sass 依赖
- 如何把本地开发的 SAP UI5 应用部署到 ABAP 服务器上
- 关于 SAP Spartacus SSR 模式和 CSR 模式下重复发送 HTTP 请求调用 OCC API 的问题
- SAP UI5 busy Dialog debug
- SAP UI5 Manifest fill logic
- Invalid format (return structure): Property Name 'Guid', Property Value '000000