负载测试解释

上一篇 / 下一篇  2014-11-13 23:14:44

负载测试(Load Testing)
  通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。在负载测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并保证系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征。例如,响应时间、事务处理速率和其他与时间相关的方面。
 1.相关定义
  负载测试、压力测试性能测试的测试目的不同,但其手段和方法在一定程度上比较相似,通常会使用相同的测试环境和测试工具,而且都会监控系统所占用资源的情况以及其他相应的性能指标,这也是造成人们容易产生概念混淆的主要原因。
  2.运行环境
  我们知道,软件总是运行在一定的环境下,这种环境包括支撑软件运行的软硬件环境和影响软件运行的外部条件。为了让客户对软件系统感到满意,必须确保系统运行良好,达到高安全、高可靠和高性能的要求。其中,系统是否具有高性能的运行特征,不仅取决于系统本身的设计和程序算法,也取决于系统的运行环境。系统的运行环境会依赖于一些关键因素,例如:
   1)系统架构,如分布式服务器集群还是集中式主机系统等;
   2)硬件配置,如服务器的配置,CPU、内存等配置越高,系统的性能会越好。
   3)网络带宽,随着带宽的提高,客户端访问服务器的速度会有较大的改善。
   4)支撑软件的选定,如选定不同的数据库管理系统(OracleMySQL等)和Web应用服务器(Tomcat、               GlassFish、 JBoss、WebLogic等),对应用系统的性能都有影响;
   5)外部负载,同时有多少个用户连接、用户上载文件大小、数据库中的记录数等都会对系统的性能有影响。一般来说       ,系统负载越大,系统的性能越低。
  从上面可以看出,使系统的性能达到一个最好的状态,不仅通过对处在特定环境下的系统进行测试以完成相关的验证,而且往往要分居测试的结果,对系统地设计、代码和配置等进行调整,提高系统的性能。很多时候,系统性能的改善是测试、调整、再测试、再调整......一个持续改进的过程,这就是我们经常说的性能调优(Perormance Tuning)。
  在了解了这样一个背景后,就比较容易理解为什么在性能测试中常常要谈负载测试。从测试的目的出发、从用户的需求出发,就比较容易区分性能测试、负载测试和压力测试。性能测试是为了获得系统在某种特定条件下(包括特定的负载条件下)的性能指标数据,而负载测试、压力测试是为了发现软件系统中所存在的问题,包括性能瓶颈、内存泄露等。通过负载测试,也是为了获得系统正常工作时所能承受的最大负载,这时负载测试就成为容量测试。通过压力测试,可以知道在什么极限情况下系统会崩溃、系统是否具有自我恢复性等,但更多的是为了确定系统的稳定性。
  3.区别定义
  如何给负载测试、压力测试下个定义呢?根据上述讨论,我们可以给出以下的定义:
  负载测试是模拟实际软件系统所承受的负载条件的系统特性,通过不断加载(如逐渐增加模拟用户的数量)或其他加载方式来观察不同负载下系统的相应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄露、不能实时同步等问题。负载测试更多地体现了一种方法或一种技术。
  压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。
  压力测试可以看做是负载测试的一种,即高负载下的负载测试,或者说压力测试采用负载测试技术。通过压力测试,可以更快地发现内存泄露问题,还可以更快地发现影响系统稳定性的问题。例如,在正常负载情况下,某些功能不能正常使用或系统出错的概率比较低,可能一个月出现一次,但在高负载(压力测试)下,可能一天就出现,从而发现有缺陷的功能或其他系统问题。通过负载测试,可以证明这一点,某个电子商务网站的订单提交功能,在10个并发用户时错误率是0,在50个并发用户时错误率是1%,而在200个并发用户时错误率是20%。
  负载测试是为了发现系统的性能问题,负载测试需要通过系统性能特性或行为来发现问题,从而为性能改进提供帮助,从这个意义看,负载测试可以看做性能测试的一部分。但它们两者的目的是不一样的,负载测试是为了发现缺陷,而性能测试是为了获取性能指标。因为性能测试过程中,也可以不调用负载,而是在同样负载情况下改变系统的结构、改变算法、改变硬件配置等等来得到性能指标数据,从这个意义看,负载测试可以看做是性能测试所用的一种技术,即性能测试使用负载测试的技术、使用负载测试的工具。性能测试要获得在不同的负载情况下的性能指标数据。
  通过负载测试和压力测试都可以获得系统正常工作时的极限负载或最大容量。容量测试,自然也是采用负载测试技术来实现,而在破坏的压力测试中,容量的确可以看做是一种副产品——简介结果。
  4.综合概述
  综上所述,负载测试、压力测试和性能测试的概念可以概括如下:
  负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。负载测试是一种测试方法,可以为性能测试、压力测试所采用。负载测试的加载方式也有很多种,可以根据测试需要来选择。
  性能测试是为获取或验证系统性能指标而进行测试。多数情况下,性能测试会在不同负载情况下进行。
  压力测试通常是在高负载情况下来对系统的稳定性进行测试,更有效地发行系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。

TAG:

引用 删除 475334877   /   2014-11-28 15:17:52
压力和负载测试 一个通俗的解释就是 你能不能背起一个200斤的人 就是压力测试 你背着这个200斤的人多长时间 就是负载测试
 

评分:0

我来说两句

日历

« 2024-05-06  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 2082
  • 日志数: 2
  • 建立时间: 2014-10-28
  • 更新时间: 2014-11-13

RSS订阅

Open Toolbar