性能测试vs负载测试vs压力测试

下面我们主要介绍性能测试负载测试压力测试

效率作为ISO 9126内部和外部质量的重要质量属性之一,其含义是在规定条件下,相对于所用的资源的数量,软件产品可提供适当性能的能力。资源可能包括其他软件产品或系统的软件和硬件配置,以及其他相关的资源(例如:打印纸、磁盘等)。

效率测试主要关注产品的时间和资源相关的特性。时间相关的特性是指在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐量的能力,例如:用户打开某个网页需要等待的时间;资源相关的特性是指,在规定条件下,软件产品执行其功能时,使用合适数量和类别的资源的能力,例如:用户在进行相关操作时,系统的内存和CPU的变化情况。

根据产品的时间特性和资源特性,效率测试可以包括不同的测试类型,例如:性能测试(Performance Test)、负载测试(Load Test)和压力测试(Stress Test)。这三种效率测试类型,不仅在具体定义上面有不同的侧重点,同时相互之间又是密切关联的。

1)性能测试

性能测试主要评价系统或组件的性能是否和具体的性能需求一致,例如:对访问速度的性能需求或对内存使用情况的需求。特定性能测试的关注点在于组件或系统在规定的时间内和特定的条件下响应用户或系统输入的能力。

不同的性能的度量方法取决于不同的被测对象。对于一个单独软件组件,其性能可以根据CPU主频来判定。而带客户端的系统,其性能则要根据系统处理特定用户请求的响应时间来判定。对于那些由多种组件(如客户端、服务器、数据库)构成的系统,则要进行各组件之间的性能测试。

产品的性能对用户是否会持续使用该产品影响很大。表1所示是一个用户对访问一个独立页面时等待不同时间的态度分布。可以看到,当页面加载时间在10秒的时候,有84%的用户愿意等待;但是当页面加载时间达到30秒的时候,只有5%的用户愿意等待。

表1 用户愿意等待时间分布

表1中的数据考虑了网络的延迟。而如果在测试环境中,整个网络是被测试系统所独占的时候,对系统性能的要求要高的多。对于愿意等待的时间,每个用户的承受范围是不同,而且用户对不同的应用程序愿意接受的等待时间也是不一样的。下面是一组关于响应时间的性能需求描述:

  • 对于多媒体交互系统,在90%的时间内系统响应时间应该不超过0.1秒;
  • 对于每个用户同时只有一项任务的在线系统,在90%的时间内系统响应时间应该不超过0.5秒;
  • 对于每个用户同时有多任务的在线系统,在90%的时间内系统响应时间应该不超过1秒。

性能测试关注的是系统性能是否和具体的性能需求相一致,而当系统性能超过性能需求的时候,系统的表现并不是测试人员关心的重点。

例如:性能需求中要求系统应该支持最大同时在线用户为5000个,那么在性能测试过程中重点测试系统是否能支持5000个用户同时在线;当有5000个用户同时在线后,性能测试需要关注整个系统的运行是否符合要求;而对于在线用户超过5000人的时候,系统的表现行为并不是性能测试需要关注的。

2)负载测试

负载测试是一种通过增加负载来评估组件或系统的性能的测试方法。例如:通过增加并发用户数和(或)事务数量来测量组件或系统能够承受的负载。负载测试和性能测试的主要区别在于负载测试时,系统负载是逐渐增加的,而不是一步到位,负载测试需要观察系统在各种不同的负载情况下是否都能够正常工作。

下图是某网站随着用户数量的增加,对应的响应时间也在增加的趋势图。具体趋势如图1所示。

图1 某网站负载测试中用户数量和响应时间关系图

通过观察图1,可以发现随着用户数目的增加,系统响应时间也跟着增加。当在线用户数到700以后,系统响应时间增速明显加快。当然响应时间只是需要观察的数据之一,随着测试负载的增加还需要观察系统资源等占有情况。

3)压力测试

压力测试是评估系统处于或超过预期负载时系统的运行情况。压力测试的关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。在压力级别逐渐增加时,系统性能应该按照预期缓慢下降,但是不应该崩溃。压力测试还可以发现系统崩溃的临界点,从而发现系统中的薄弱环节。

例如:系统最大支持的同时在线用户数是1000个,压力测试需要测试在1000个用户甚至2000个用户同时在线时系统的表现。虽然测试时负载已经超过了系统的设计能力,但是在这种情况下被测试系统也不应该发生崩溃。压力测试也可以针对系统资源进行测试,例如:在系统内存耗尽情况下,测试系统的运行情况,这种情况下被测试系统也不应该崩溃。

前面分别介绍了性能测试、负载测试和压力测试三种效率测试类型。目前在软件测试领域,对这三种测试类型的定义并不统一。在实际的测试工作中,性能测试这个词被广泛的使用。在很多场合,性能测试是上述三种测试类型的通称;在有的书籍或者参考资料中,性能测试的范围甚至更加广泛。

时间: 2024-10-10 09:02:13

性能测试vs负载测试vs压力测试的相关文章

性能测试,负载测试,压力测试一些区别和应用

性能测试(Performance Test) : 就是为了收集系统的性能指标 负载测试(Load Test) : 就是在一定的负载情况下,根据收集的系统性能指标,来预测和判断系统的瓶颈. 压力测试(Stress Test) : 就是在高负载的情况下,把系统搞坏,收集系统中的隐藏问题 容量测试(Volume Test):确定系统可处理同时在线的最大用户数 负载测试,可以用于预测系统可能出现的问题,从而优化系统,提升系统的稳定性 压力测试,1. 在选定的压力值下,长时间持续运行.通过这类压力测试,可

性能测试vs负载测试vs压力测试-概念普及

下面我们主要介绍性能测试.负载测试和压力测试. 效率作为ISO 9126内部和外部质量的重要质量属性之一,其含义是在规定条件下,相对于所用的资源的数量,软件产品可提供适当性能的能力.资源可能包括其他软件产品或系统的软件和硬件配置,以及其他相关的资源(例如:打印纸.磁盘等). 效率测试主要关注产品的时间和资源相关的特性.时间相关的特性是指在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐量的能力,例如:用户打开某个网页需要等待的时间:资源相关的特性是指,在规定条件下,软件产品执行

性能测试,负载测试,压力测试有什么区别

转自:http://www.cnblogs.com/bugua/archive/2012/04/06/2434940.html,感谢分享! 性能测试(或称多用户并发性能测试).负载测试.强度测试.容量测试是性能测试领域里的几个方面,但是概念很容易混淆.下面将几个概念进行介绍. 性能测试(Performance Test):通常收集所有和测试有关的所有性能,通常被不同人在不同场合下进行使用. 关注点:how much和how fast 负载测试(Load Test):负载测试是一种性能测试,指数据

我所理解的性能测试中负载测试与压力测试的区别

性能测试中负载测试,压力测试有什么区别 对于性能测试,负载测试,压力测试的区别,之前总自认为是清楚的,后来被人问住了,才发现还差的远.这儿网上摘了一些内容,加上自己的理解,算是弄清楚了吧.特此记下,避免忘了.如有错误之处,还望指正. 性能测试(或称多用户并发性能测试).负载测试.强度测试.容量测试是性能测试领域里的几个方面,但是概念很容易混淆. 下面将几个概念进行介绍. 性能测试(Performance Test):通常收集所有和测试有关的所有性能,被不同人在不同场合下进行使用. 关注点:how

什么是压力测试和负载测试,压力测试和负载测试有什么...

压力测试:是在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响负载测试:在一定的工作负荷下,给系统造成的负荷及系统响应的时间.压力测试主要是为了发现在一(任意)定条件下软件系统的性能的变化情况,通过改变应用程序的输入以对应用程序施加越来越大的负载(并发,循环操作,多用户) 并测量在这些不同的输入时性能的改变,也就是通常说的概念:压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在.其实这种测试也可以称为负载测试,但是负载测试通常描述一种特定类型的压力测试——增加用户数

学习使用Jmeter做压力测试(一)--压力测试基本概念

一.性能测试的概念 性能测试是通过自动化的测试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行测试.负载测试和压力测试都属于性能测试,两者可以结合进行. 通过负载测试,确定在各种工作负载下系统的性能,目标是当负载逐渐增加时,测试系统各项性能指标的变化情况.压力测试时通过确定一个系统的瓶颈或者不能接受的 性能点,来获取系统能提供的最大服务级别的测试.性能测试主要包括负载测试.强度测试.容量测试. 二.性能测试的指标 web服务器: Avg Rps: 平均每秒的响应次数 = 总请求数 /

移动端测试-monkey压力测试

移动端测试-monkey压力测试 安卓手机跟电脑安装豌豆荚 启动adb的服务(关闭服务    adb kill-server)    adb devices 安装apk    adb install HelloWorld.apk 查看应用程序包名 只需要在连接手机后,输入命令:adb shell am monitor 在手机上点击程序,就能显示程序包名 Monkey测试原理: Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输

性能测试,负载测试,压力测试 区别

http://www.cnblogs.com/Uther/p/5292164.html 负载测试和强度测试,都属于性能测试的子集. 负载测试是测试软件本身最大所能承受的性能测试: 压力测试就是一种破坏性的性能测试:

入门级----黑盒测试、白盒测试、手工测试、自动化测试、探索性测试、单元测试、性能测试、数据库性能、压力测试、安全性测试、SQL注入、缓冲区溢出、环境测试

黑盒测试 黑盒测试把产品软件当成是一个黑箱子,只有出口和入口,测试过程中只要知道往黑盒中输入什么东西,知道黑盒会出来什么结果就可以了,不需要了解黑箱子里面是如果做的. 即测试人员不用费神去理解软件里面的具体构成和原理,只要像用户一样看待产品就可以了. 例如银行转账功能,不需要知道转账的具体实现代码是怎样工作的,只需要把自己想象成各种类型的用户,模拟多种转账情况看系统是否能正常转账即可. 但是仅仅像用户一样去测试又是不够的.如果只做黑盒测试,必然是存在一定的风险的. 例如某个安全性较高的软件系统,