负载与压力testing
负载和压力testing有什么区别?
维基百科上的负载testing (粗体是我的):
[…]通常会进行负载testing以了解系统在特定预期负载下的行为。 这个负载可以是在设定的持续时间内执行特定数量的事务的应用程序上预期的并发用户数量。 这个testing将给出所有重要的业务关键交易的响应时间。
和压力testing :
了解系统内容量的上限 。 这种testing是为了确定系统在极端负载方面的健壮性,并帮助应用程序pipe理员确定当前负载远高于预期最大值时系统是否能够充分执行。
因此,底线是:如果您正在testing正常的预期负载(您知道系统一次最多可以使用100个用户),那么这是负载testing 。 但是,当你想确定系统在极端负载(DoS, Slashdot效应 )下如何运行以及何时中断,这就是压力testing 。
“压力testing”和“负载testing”这两个术语经常被软件testing工程师交替使用,但实际上却完全不同。
压力testing
在压力testing中,我们试图通过压榨其资源或从中获取资源(在这种情况下有时称为负testing)来打破被测系统。 这种疯狂背后的主要目的是要确保系统失败并优雅恢复 – 这种质量被称为可恢复性。 或者压力testing是让被测程序/系统(SUT)受到减less的资源,然后通过运行标准functiontesting来检查SUT的行为。 这样做的想法是揭示在正常情况下不会出现的问题。例如,multithreading程序在正常情况下可能正常工作,但是在CPU可用性降低的情况下,计时问题将会不同,并且SUT将会崩溃。 在压力testing中减less的最常见types的系统资源是CPU,内部存储器和外部磁盘空间。 在进行压力testing时,通常会调用分别减lessEatCPU,EatMem和EatDisk这三个资源的工具。
而另一方面负载testing
在负载testing的情况下负载testing是使SUT承受沉重负载的过程,通常通过模拟多个用户(使用Load runner),其中“用户”可以表示人类用户或虚拟/编程用户。 负载testing最常见的例子包括对基于networking或基于networking的应用程序进行数千个用户的同时访问。 这通常由模拟用户的程序完成。 负载testing有两个主要目的:确定SUT的性能特征,并确定SUT是否“优雅地”中断。
在网站的情况下,您可以使用负载testing来确定您的系统可以处理多less用户,并且仍然具有足够的性能,并确定极端负载会发生什么情况 – Web站点是否会生成“太忙”消息用户,还是会让Web服务器崩溃?
负载testing:负载testing的目的是通过不断稳定地增加系统的负载来testing系统,直到达到极限。
示例例如,要检查应用程序的电子邮件function,可以一次充满1000个用户。 现在,有1000个用户可以通过多种不同的方式来触发电子邮件交易(读取,发送,删除,转发,回复)。 如果我们每个用户每小时处理一笔交易,则每小时处理1000笔交易。 通过模拟10个交易/用户,我们可以以10000个交易/小时来加载testing电子邮件服务器。
压力testing:在压力testing下,开展各种活动,以超额工作超载现有资源,试图打破系统。
示例:作为一个例子,像OpenOffice.org的Writer1.1.0这样的文字处理器被用于开发字母,演示文稿,电子表格等。我们的压力testing的目的是加载超过字符。
为此,我们将重复粘贴一行数据,直到达到处理大量文本的阈值限制。 只要字符大小达到65535个字符,就会拒绝接受更多的数据。 在Writer 1.1.0上进行压力testing的结果是,它在压力下不会崩溃,并能够优雅地处理这种情况,确保应用程序即使在严苛的压力条件下也能正常工作。
– >用最大数量的用户和inputtesting应用程序被定义为负载testing 。 当testing应用程序超过最大数量的用户和input被定义为压力testing 。
– >在负载testing中,我们根据用户量来衡量系统性能。 在压力testing中,我们测量系统的断点。
– >负载testing正在testing应用程序的一个给定的负载要求,其中可能包括以下任何标准:
.Total number of users. .Response Time .Through Put
一些参数来检查服务器/应用程序的状态。
– >压力testing正在testing应用程序的意外负载。 这包括
.Vusers .Think-Time
例:
如果一个应用程序是为500个用户构build的,那么对于负载testing,我们检查多达500个用户,对于压力testing,我们检查超过500个。
负载testing=在服务器上放置一定量的负载一段时间。 100个同时用户10分钟。 确保软件的稳定性。 压力testing=稳定增加负载量,直到软件崩溃。 每两分钟同时增加10个用户,直到服务器崩溃。
为了比较举重:你“重量”你的体重,看看你能做什么1代表(压力testing),然后定期的锻炼,你做最大值的85%为3套10代表(负载testing)
负载testing : – 负载testing是为了对系统进行testing,通过不断稳定地增加系统的负载,直到达到极限值。
压力testing : – 在压力testing下,为了打破系统,进行各种活动来使超额工作超载现有资源。
基本的区别在于
点击这里查看确切的区别
负载testing:大量用户压力testing:用户太多,数据太多,时间太less,空间太less
负载 – 在最大负载下testingS / W。 应力 – 超出S / W的负载或者要确定S / W的断点。