负载与压力测试[关闭]


80

负载测试和压力测试有什么区别?


1
我发现自己问了同样的问题,并且意识到性能测试类型有很多定义,但是没有标准的“正式”定义。
多米尼克安塔尔2014年

6
我投票结束这个题为离题,因为它与编程无关。它涉及测试的类型,并且该问题在sqa.stackexchange.com上有很多问答
AdrianHHH 2017年

您应该在这里找到这个问题的答案:性能vs负载vs压力测试
杰罗姆L

1
一个封闭的问题有72票和11万意见。那应该让那些封闭的人重新思考..
头脑风暴

Answers:


110

维基百科上的负载测试(粗体是我的):

通常进行负载测试以了解系统在特定预期负载下的行为。此负载可以是应用程序上在设置的持续时间内执行特定数量的事务的预期并发用户数。该测试将给出所有重要业务关键交易的响应时间。[...]

以及压力测试

了解系统内容量的上限。进行这种测试是为了确定系统在极端负载下的健壮性,并可以帮助应用程序管理员确定如果当前负载远高于预期的最大值,则系统是否能够充分发挥作用。

因此,最重要的是:如果您正在测试正常的预期负载(您知道一次最多将有100个用户使用该系统),那么这就是负载测试。但是,当您要确定系统在极端负载(DoS,Slashdot效应)下的行为以及何时崩溃时,这就是压力测试


3
所以它们基本上是相同的东西,但是负载在正常负载下并且压力大于正常负载?他们不是要测试系统的不同方面吗?
Neeta 2012年

11
@Neeta:负载测试通过在请求之间注入随机的暂停来模拟真实用户。压力测试可以简单地执行尽可能多的请求。但是测试方案可以相同。
Tomasz Nurkiewicz 2012年

@Neeta user2197712的答案会更合适。我的理解是这样的:压力测试是在异常环境中找出系统在正常输入下的行为,而负载测试是在正常环境中找出系统在异常输入下的行为。
ADTC '18

18

术语“压力测试”和“负载测试”通常由软件测试工程师互换使用,但是它们实际上是完全不同的。

压力测试

在压力测试中,我们试图通过淹没其资源或从中夺走资源来破坏被测系统(在这种情况下,有时称为负面测试)。这种疯狂行为的主要目的是确保系统出现故障并正常恢复-这种质量称为可恢复性。 或压力测试是使您的被测程序/系统(SUT)减少资源,然后通过运行标准功能测试来检查SUT行为的过程。这样做的目的是暴露正常情况下不会出现的问题,例如,多线程程序在正常情况下可能会正常运行,但在CPU可用性降低的情况下,时序问题将有所不同,SUT将会崩溃。在压力测试中减少的最常见的系统资源类型是CPU,内部存储器和外部磁盘空间。执行压力测试时,通常会调用分别减少这三个资源EatCPU,EatMem和EatDisk的工具。

另一方面,负载测试

在进行负载测试的情况下,负载测试是使您的SUT承受重负载的过程,通常是模拟多个用户(使用负载运行程序),其中“用户”可以指人工用户或虚拟/编程用户。负载测试的最常见示例涉及使基于Web或基于网络的应用程序同时受到成千上万用户的点击。通常,这是通过模拟用户的程序来完成的。负载测试有两个主要目的:确定SUT的性能特征,以及确定SUT是否正常“中断”。

对于网站,您将使用负载测试来确定系统可以处理多少用户并仍具有足够的性能,并确定在极端负载下会发生什么—该网站是否会生成“太忙”消息,从而导致用户,还是Web服务器会崩溃?


10

负载测试: 负载测试旨在通过​​不断稳定地增加系统上的负载直到达到阈值限制的时间来测试系统。

示例 例如,要检查应用程序的电子邮件功能,可能一次充斥1000个用户。现在,有1000位用户可以通过多种方式触发电子邮件交易(读取,发送,删除,转发,回复)。如果我们每小时每位用户进行一次交易,那么每小时将是1000次交易。通过模拟10个事务/用户,我们可以通过占用10000个事务/小时来对电子邮件服务器进行负载测试。

压力测试: 在压力测试下,为了使系统崩溃,将执行各种活动来使现有资源超负荷而增加工作。

示例: 作为示例,像OpenOffice.org的Writer1.1.0这样的文字处理程序被用于开发信件,演示文稿,电子表格等。

为此,我们将重复粘贴一行数据,直到达到处理大量文本的阈值限制。一旦字符大小达到65,535个字符,它就会简单地拒绝接受更多数据。在Writer 1.1.0上进行压力测试的结果是,它不会在压力下崩溃,并且可以很好地处理这种情况,从而确保即使在严格的压力条件下,应用程序也可以正常工作。


3

->以最大的用户和输入数量测试应用程序被定义为负载测试。在测试应用程序时,用户和输入的数量超过最大数量被定义为压力测试

->在负载测试中,我们根据用户数量来衡量系统性能。在压力测试中,我们测量系统的断点。

->负载测试是针对给定的负载需求测试应用程序,其中可能包括以下任何条件:

 .Total number of users.

 .Response Time

 .Through Put

一些参数来检查服务器/应用程序的状态。

->当压力测试正在测试应用程序的意外负载时。这包括

 .Vusers

 .Think-Time

例:

如果一个应用程序是为500个用户构建的,那么对于负载测试,我们最多可以检查500个用户,对于压力测试,我们最多可以检查500个用户。


2

负载测试=在一定时间内将指定数量的负载放在服务器上。100个同时用户10分钟。确保软件的稳定性。压力测试=稳定增加负载量,直到软件崩溃为止。每2分钟增加10个并发用户,直到服务器崩溃。

与举重进行比较:您“最大”称重您的体重以查看1次重复可以做的事情(压力测试),然后在常规锻炼中,进行3组10次重复(负荷测试)时要达到最大值的85%


1

负载测试:-负载测试旨在通过​​不断稳定地增加系统上的负载直到达到阈值限制的时间来测试系统。

压力测试:-在压力测试下,为了使系统崩溃,人们进行了各种活动来使现有资源超负荷并增加工作量。

基本区别如下

点击这里查看确切的区别


0

负载测试:大量用户 压力测试:用户太多,数据太多,时间太少,空间太小


-1

负载-在最大负载下测试软件。应力-超出软件负载的压力或确定软件负载的断裂点。


4
与以前的答案相比,您的答案有什么新变化?
Stepan Novikov
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.