负载测试(Load testing)、压力测试(Stress Test,应称为强度测试)和性能测试,这三个概念常常引起混淆,难以区分,从而造成不正确的理解和错误的使用。之前,也有不少讨论,比较有名的,应归为Grig Gheorghiu's的两篇博客:
•Performance vs. load vs. stress testing
•More on performance vs. load testing
负载测试、压力测试和性能测试的测试目的不同,但其手段和方法在一定程度上比较相似,通常会使用相同的测试环境和测试工具,而且都会监控系统所占用资源的情况以及其它相应的性能指标,这也是造成人们容易产生概念混淆的主要原因。
我们知道,软件总是运行在一定的环境下,这种环境包括支撑软件运行的软硬件环境和影响软件运行的外部条件。为了让客户使用软件系统感到满意,必须确保系统运行良好,达到高安全、高可靠和高性能。其中,系统是否具有高性能的运行特征,不仅取决于系统本身的设计和程序算法,而且取决于系统的运行环境。系统的运行环境会依赖于一些关键因素,例如:
•系统架构,如分布式服务器集群还是集中式主机系统等。
•硬件配置,如服务器的配置,CPU、内存等配置越高,系统的性能会越好。
•网络带宽,随着带宽的提高,客户端访问服务器的速度会有较大的改善。
•支撑软件的选定,如选定不同的数据库管理系统(Oracle、MySQL等)和web应用服务器(Tomcat、GlassFish、Jboss、WebLogic等),对应用系统的性能都有影响。
•外部负载,同时有多少个用户连接、用户上载文件大小、数据库中的记录数等都会对系统的性能有影响。一般来说,系统负载越大,系统的性能会降低。
从上面可以看出,使系统的性能达到一个最好的状态,不仅通过对处在特定环境下的系统进行测试以完成相关的验证,而且往往要根据测试的结果,对系统的设计、代码和配置等进行调整,提高系统的性能。许多时候,系统性能的改善是测试、调整、再测试、再调整、……一个持续改进的过程,这就是我们经常说的性能调优(perormance tuning)。
在了解了这样一个背景之后,就比较容易理解为什么在性能测试中常常要谈负载测试。从测试的目的出发、从用户的需求出发,就比较容易区分性能测试、负载测试和压力测试。性能测试是为了获得系统在某种特定的条件下(包括特定的负载条件下)的性能指标数据,而负载测试、压力测试是为了发现软件系统中所存在的问题,包括性能瓶颈、内存泄漏等。通过负载测试,也是为了获得系统正常工作时所能承受的最大负载,这时负载测试就成为容量测试。通过压力测试,可以知道在什么极限情况下系统会崩溃、系统是否具有自我恢复性等,但更多的是为了确定系统的稳定性。
那么,如何给负载测试、压力测试下个定义呢?根据上述讨论,我们可以给出如下的定义:
•负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现了一种方法或一种技术。
•压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。
压力测试可以被看作是负载测试的一种,即高负载下的负载测试,或者说压力测试采用负载测试技术。通过压力测试,可以更快地发现内存泄漏问题,还可以更快地发现影响系统稳定性的问题。例如,在正常负载情况下,某些功能不能正常使用或系统出错的概率比较低,可能一个月只出现一次,但在高负载(压力测试)下,可能一天就出现,从而发现有缺陷的功能或其它系统问题。通过负载测试,可以证明这一点,某个电子商务网站的订单提交功能,在10个并发用户时错误率是零,在50个并发用户时错误率是1%,而在200个并发用户时错误率是20%。
负载测试是为了发现系统的性能问题,负载测试需要通过系统性能特性或行为来发现问题,从而为性能改进提供帮助,从这个意义看,负载测试可以看作性能测试的一部分。但它们两者的目的是不一样的,负载测试是为了发现缺陷,而性能测试是为了获取性能指标。因为性能测试过程中,也可以不调整负载,而是在同样负载情况下改变系统的结构、改变算法、改变硬件配置等等来得到性能指标数据,从这个意义看,负载测试可以看作是性能测试所c的一种技术,即性能测试使用负载测试的技术、使用负载测试的工具。性能测试要获得在不同的负载情况下的性能指标数据。
通过负载测试和压力测试都可以获得系统正常工作时的极限负载或最大容量。容量测试,自然也是采用负载测试技术来实现,而在破坏性的压力测试中,容量的确定可以看作是一种副产品——间接结果。
综合所述,负载测试、压力测试和性能测试的概念可以概括如下:
•负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。负载测试是一种测试方法,可以为性能测试、压力测试所采用。负载测试的加载方式也有很多种,可以根据测试需要来选择。
•性能测试是为获取或验证系统性能指标而进行测试。多数情况下,性能测试会在不同负载情况下进行。
•压力测试通常是在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/KerryZhu/archive/2008/12/14/3515714.aspx
分享到:
相关推荐
===如资源质量问题,可半价退款,代下全网资源,价格公道==== 适合练手、课程设计、毕业设计的Java项目源码:进销存管理系统(jsp+mssql).rar 适合练手、课程设计、毕业设计的Java项目源码:进销存管理系统(jsp+mssql).rar 适合练手、课程设计、毕业设计的Java项目源码:进销存管理系统(jsp+mssql).rar 适合练手、课程设计、毕业设计的Java项目源码:进销存管理系统(jsp+mssql).rar 适合练手、课程设计、毕业设计的Java项目源码:进销存管理系统(jsp+mssql).rar 适合练手、课程设计、毕业设计的Java项目源码:进销存管理系统(jsp+mssql).rar 适合练手、课程设计、毕业设计的Java项目源码:进销存管理系统(jsp+mssql).rar 适合练手、课程设计、毕业设计的Java项目源码:进销存管理系统(jsp+mssql).rar 适合练手、课程设计、毕业设计的Java项目源码:进销存管理系统(js。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
光储并网直流微电网simulink仿真模型,光伏采用mppt实现最大功率输出。 储能由蓄电池和超级电容构成的混合储能系统。 为了确保微网并网时电能质量,采用二阶低通滤波法对光伏输出功率进行抑制,通过设置不同截止频率将高频功率给超级电容响应,中频给蓄电池,低频功率并入大电网,有效提高电能质量。 逆变器采用基于电网电压双闭环控制
深圳建筑工程公司管理制度手册
No.259 S7-200 组态王 基于plc控制的智能楼宇消防系统 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面
一个简单的ppt,介绍散热分析软件Icepak的使用。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
最新组态图形,楼宇自控空调,送排风专用图形全网最全图库,总共600张图,图形格式png,gif;含暖通风管,风机。 图形适用于空调机组,新风机组,送排风机。 图形文件
博途1200恒压供水程序,恒压供水,一拖三,PID控制,3台循环泵,软启动工作,带超压,缺水保护,西门子1200+KTP1000触摸屏
No.713 基于S7-200 PLC自动扶梯控制系统 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面
No.942 基于S7-200 PLC和组态王港口码头装卸料小车控制系统 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面 组态王6.55画面,内部程序可以不连接plc运行。 模拟动画,参数设定。 程序带注释。 图纸齐全,接线图原理图。 优惠款
AD封装库
就业人口,在我国是指在16周岁以上,特殊职业需要18周岁以上,从事一定社会劳动并获取劳动报酬或经营收入的人员, 就业是民生之本,特别是在当前我国经济减速换挡、结构优化调整、动力加快转换的关键时期,就业的“稳定器”作用显得更加重要。 通过促进经济稳步发展,创造多重就业环境,扩大就业机会,我国就业整体形势延续稳定向好。失业率将会维持在较低水平,而有些产能会因产能、环保压力、贸易摩擦、体制机制障碍等因素影响,会导致部分行业瓦解出现较为突出的失业问题。
料箱输送线程序,有合流和分拣, 精华部分是WCS和PLC的Socket接口和分拣控制程序 提供设备布局图和电气图纸以及博途V16程序。 程序源自欧企,无加密,外企程序还是比较美观的,程序仅供学习参考,不讲解 硬件配置:PLC:1516F-3 PN DP,1212C等 HMI:TP1200 Confort等 主要设备有:英特诺直流辊筒电机和控制卡 条码阅读器DataMan 470 SEW MOVIfit变频器
一个关于机器人操纵运动规划的项目,使用基于 ROS 和 Gazebo 模拟的深度强化学习 资源内项目源码是均来自个人的课程设计、毕业设计或者具体项目,代码都测试ok,都是运行成功后才上传资源,答辩评审绝对信服的,拿来就能用。放心下载使用!源码、说明、论文、数据集一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 4、如有侵权请私信博主,感谢支持
基于粒子群优化的RBF神经网络预测算法 bp神经网络预测算法 RBF神经网络算法预测算法 内涵详细的代码注释
基于Python的MD5数字碰撞的GUI程序
labview yolov5 opencv dnn推理,封装dll, labview调用dll,支持同时加载多个模型并行推理,可cpu gpu, 可识别视频和图片,只需要替模型的onnx和nameclass即可
最后一个支持win7系统的免费开源录屏工具-OBS-Studio-27.2.4-Full-Installer-x64.exe.zip
内容概要:本文详细介绍了全国计算机二级竞赛的情况,涵盖了竞赛的目的、目标群体、竞赛流程、个人参赛心得及其对参赛者的深远意义。文章描述了该竞赛由全国计算机等级考试办公室举办,针对大学生及其他相关人员,旨在评估编程设计能力、算法知识及数据结构等方面的专业能力。文中强调竞赛对于提升编程能力和加深对数据结构及算法认识的价值。竞赛过程既考察参赛者理论素养,又强调实战技能的应用和发挥,尤其是面对难题时保持冷静并寻找有效解决途径的能力。 适合人群:准备参加类似计算机科学竞赛的学生、程序员及有兴趣提高自身编码和算法能力的计算机爱好者。 使用场景及目标:①帮助读者了解全国计算机二级竞赛的内容和形式;②激励读者积极参与竞赛,锻炼自己的实际动手能力和解题技巧。 阅读建议:建议准备参赛或者希望改善自己编程实力的人士认真阅读本篇文章,从中学到竞赛的经验与教训,并结合自身实际情况调整训练计划以期在未来取得更好的成绩。此外还应该持续关注最新资讯和技术趋势来更好地适应比赛要求。
考虑阶梯式碳交易机制与电制氢的综合能源系统热电优化#Matlab程序,matlab代码 #碳交易 电制氢 阶梯式碳交易 综合能源系统 热电优化# matlab程序,考虑阶梯式碳交易机制的电热综合能源系统优化调度研究,考虑综合能源系统参与碳交易市场,引入阶梯式碳交易机制引导IES控制碳排放。 看下面的图片是运行结果,程序不负责讲解,采用yalmip+cplex求解器求解。 热电联产,电转气,P2G,优化调度,氢燃料电池 程序结果和描述图一模一样。