性能测试、负载测试、稳定性测试、压力测试之间有何区别?刚开始自己也不能很好的区分,随着一些具体性能测试实践的开展,大概有一个基本的认识,总结如下:

首先,大致了解下软件产品的性能受哪些因素的影响

我们知道,软件总是运行在一定的环境下 ,这种环境包括支撑软件运行的软硬件环境和影响软件运行的外部条件。为了让客户使用软件系统感到满意,必须确保系统运行良好,达到高安全、高可靠和高性能。其中,系统是否具有高性能的运行特征,不仅取决于系统本身的设计和程序算法,而且取决于系统的运行环境(硬件环境)。系统的运行环境会依赖于哪些关键因素,例如:

  • 系统架构,如分布式服务器集群还是集中式主机系统等。
  • 硬件配置,如服务器的配置, CPU、内存等配置越高,系统的性能会越好。
  • 网络带宽,随着带宽的提高,客户端访问服务器的速度会有较大的改善。
  • 支撑软件的选定 ,如选定不同的数据库管理系统( Oracle. MySQL等 )和web应用服务器( Tomcat Glassish. Jboss. WebLogic等 ),对应用系统的性能都有影响。
  • 外部负载,同时有多少个用户连接、用户上载文件大小、数据库中的记录数等都会对系统的性能有影响。一般来说 ,系统负载越大,系统的性能会降低。

从上面可以看出,使系统的性能达到一个最好的状态,不仅通过对处在特定环境下的系统进行测试以完成相关的验证,而且往往要根据测试的结果,对系统的设计、代码和配置等进行调整,提高系统的性能。 许多时候,系统性能的改善是测试调整、再测试再调整、一个持续改进的过程,这就是我们经常说的性能调优。在了解了这样一个背景之后 ,就比较容易理解为什么在性能测试中常常要谈负载测试。从测试的目的出发、从用户的需求出发,就比较容易区分性能测试、负载测试、稳定性测试、压力测试。

其次,如何理解性能测试、负载测试、稳定性测试、压力测试

性能测试、负载测试、稳定性测试、压力测试的测试目的不同,但其手段和方法在一定程度上比较相似,通常会使用相同的测试环境和测试工具,而且都会监控系统所占用资源的情况以及其它相应的性能指标,这也是造成我们容易产生概念混淆的主要原因。

性能测试类型

广义上性能测试指的是以下几种性能测试类型:

  • 性能测试
  • 负载测试
  • 压力测试
  • 稳定性测试

一般系统的性能指标

  • 响应时间(系统为其服务所耗费的时间)。
  • 吞吐量(简单讲就是系统在每单位时间内能处理多少个事务/请求/单位数据等)。
  • 资源使用率(常见的资源有:CPU占用率、内存使用率、磁盘I/O、网络I/O)。
  • 点击数(单位时间内,系统响应客户的请求,是系统处理能力的一个很有用的指标)。
  • 并发用户数(并发用户数用来度量服务器并发容量和同步协调能力)。

我们取其中某几个性能指标,举个栗子。我们先假设一个场景:XX查询系统,其中一项产品规格(性能指标)为300用户并发查询,页面首屏结果请求响应时间不超过3秒。

性能测试

测试A点的系统性能。

性能测试是为了获得系统在某种特定的条件下(包括特定的负载条件下)的性能指标数据。

负载测试

测试 A点以下到C点系统性能。

负载测试的目标是测试在一定负载情况下系统性能(不关注稳定性,也就是说不关注长时间运行),实际中我们常从比较小的负载开始,逐渐增加模拟用户的数量(增加负载), 观察不同负载下应用程序响应时间、数据吞吐量、系统资源使用率(如CPU、内存)等,直到到系统的某项或多项性能指标达到安全临界值(如,系统内存已饱和),以发现系统可能存在的性能瓶预、内存泄漏、不能实时同步等问题(不关注稳定性,也就是说不关注长时间运行。它是测试系统的不同负载情况下的性能指标。

稳定性测试

测试 A点以下 到 B 点之间

稳定性测试是一般在低于性能值的前提下进行测试的,一般稳定性测试时间持续为 n*24 小时。测试时,我们需要结合用户实际情况控制测试中的负载量 ,使测试结果更具准确性和可靠性。

压力测试

测试B 点到D 点之间系统性能。

压力测试是在高于性能指标负载的前提下(超负载)对系统持续施加压力进行测试的,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐惠、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如124小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。

  • 稳定性压力测试:在选定的压力值下,长时间持续运行。通过这类压力测试,可以考察各项性能指标是否在指定范围内,有无内存泄漏、有无功能性故障。
  • 破坏性压力测试:在稳定性压力测试中可能会出现些问题 ,如系统性能明显降低,但很难察露出其真实的原因。通过破坏性不断加压的手段(极限负载情况下导致系统崩溃),往往能快速造成系统的崩溃。

压力测试的几点注意

  • 测试时,我们需要注意并不是负载超过了系统的最大处理能力, 系统功能都会失效。例如,OA签到最多支持500用户井发登录,但某时550用户同时进行登录时,系统应保证550个用户中,500用户是可以正常登录,而不是所有用户都无法登录。
  • 用户的业务负载并不是平均的,可能在极短时间内,出现超过负载的情况,如某宝双十一。因此不建议用持续超过系统负载的测试方法进行压力测试,只要负载足够多,系统总会被搞挂,建议使用突发形态的负载模型。

压力测试和负载测试区别_如何理解与区分软件性能测试、负载测试、稳定性测试、压力测试...相关推荐

  1. 软件性能测试负载测试,软件性能测试VS负载测试VS压力测试[2]

    软件性能测试VS负载测试VS压力测试[2] 发表于:2010-03-16来源:作者:点击数: 软件性能测试VS负载测试VS 压力测试 [2] 性能测试工具 假若在调试过应用程序及 数据库 后,系统还是 ...

  2. alphac测试和bata测试区别_康一康!接口测试与性能测试的区别瞧过来~

    点击上方蓝字  关注我们前言 最近我在一个论坛上看到了一个关于性能测试和接口测试的经典问题,问题如下: 问题:后端性能测试,一个功能其实都是由后台多个接口组成的. 例如一个单据的保存,可能后台需要调用 ...

  3. 软件性能测试——负载测试的最佳实践

    性能测试中最容易被误解的部分之一就是负载测试.大多数人认为所有性能测试就是负载测试,但这是不准确的.有许多类型的测试组成性能测试.在进行负载测试之前要考虑的问题之前,让我们仔细研究一下负载测试的基本信 ...

  4. linux中负载值为多少正常_什么是cpu负载_cpu负载多少正常_详解Linux系统的CPU负载均值...

    上一篇文章的最后,作者提到了文章的参考来源,我特意前往访问了下,发现写得非常不错,特转过来,可以结合阅读,以便更容易理解 CPU 负载这个概念. 你可能对于 Linux 的负载均值(load aver ...

  5. 杀出重围3显卡测试软件,性能测试:1080p游戏无压力

    七彩虹战斧GTX 1060 CS:GO显卡规格对比 七彩虹战斧GTX 1060 6/3GB显卡 参数对比 显卡名称战斧GTX 1060 6G战斧GTX 1060 3GBGTX 1060 6GB 核心G ...

  6. python 训练集 测试集 验证集划分_将自己的图片数据集分成训练集、验证集和测试集并用 Tensorflow2.0 导入...

    文章目录项目介绍 划分数据集1.在 dataset 目录下创建三个文件夹 2.将原来 dataset 文件夹中的子文件夹分别复制到这三个文件夹中 3.在 python 中指定所有路径 4.将这三个文件 ...

  7. cookie session token区别_彻底理解cookie,session,token

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者: 墨颜丶 cnblogs.com/moyand/p/9047978.html 发展史 ...

  8. 私有云和公有云的区别_如何理解公有云和私有云

    近几年随着云计算技术的逐渐普及,越来越多的企业开始选择了部署云计算方案,但是公有云.私有云到底怎么选,或者说它们各自具体有什么区别,很多人是不了解的,针对不同需求的企业拥有不同部署方案,如果不了解的话 ...

  9. linux平均负载什么意思_在Linux中什么是平均负载?

    linux平均负载什么意思 Load Average in Linux is a metric that is used by Linux users to keep track of system ...

最新文章

  1. java中表示根号三_Java命名规范
  2. 如何垂直居中一个img
  3. php7 imagick安装,php扩展imagick安装for windows7
  4. 在php获取访问方的ip
  5. mysql5.6.4m7 linux安装_mysql-5.6.4-m7installinlinux
  6. 讲一个让你们难过很久的故事吧?
  7. 你真的了解“真的了解”的含义吗
  8. ATM系统之问题描述与词汇表
  9. 可怕!你没看错,这次确实是纯手工实现一个MyBatis框架!
  10. Java 开发必备,EasyExcel 操作详解!
  11. jenkins--master/slave模式---master是容器版---slave是非容器版
  12. Oracle11g安装教程
  13. 对于长沙互联网发展,一个外来两年Java程序员的所见所感所愿
  14. 第七周 项目4 - 队列数组
  15. mysql左连接查询慢
  16. SpringBoot+Beetlsql代码生成
  17. 盘古开源:大数据赋能业务运营,自主研发实现新突破
  18. 云台山春花将逝,热情的盛夏等待您
  19. | Element 详情
  20. 企业公众号做内容输出有哪些要点

热门文章

  1. Oracle 常用命令
  2. mac安装完mysql后关机特别慢_解决Mac升级到10.12后关机很慢的问题
  3. python传参_Python的赋值和传参
  4. wincc 服务器共享文件夹,wincc共享文件夹Simatic Shell中项目的互连是什么意思-工业支持中心-西门子中国...
  5. html页面源码_整合SpringMVC之错误处理底层原理及源码分析
  6. 一次.net托管内存泄露分析
  7. 阿里开源量子模拟器“太章2.0”,支持量子算法和纠错探索
  8. 架构设计:分布式服务,库表拆分模式详解
  9. 对待棘手bug,新手与大牛的差距在哪里?
  10. html css integrity,HTML5 script 标签的 crossorigin 和integrity属性的作用