【问题标题】:Load vs. Stress testing [closed]负载与压力测试[关闭]
【发布时间】:2012-04-02 18:40:04
【问题描述】:

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

【问题讨论】:

  • 我发现自己问了同样的问题,并意识到性能测试类型有很多定义,但没有标准的“官方”定义。
  • 我投票决定将此问题作为离题结束,因为它与编程无关。它是关于测试类型的,该主题在 sqa.stackexchange.com 上有很多问答
  • 你应该在这里找到这个问题的答案:Performance vs Load vs stress Testing
  • 一个封闭的问题有 72 票和 110K 浏览量。那应该让那些关闭的人重新思考..
  • 我同意,谢谢@brainstorm

标签: testing load-testing stress-testing


【解决方案1】:

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

压力测试

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

另一方面 负载测试

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

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

【讨论】:

    【解决方案2】:

    负载 - 在最大负载下测试 S/W。 应力 - 超出 S/W 的负载。或确定 s/w 的断裂点。

    【讨论】:

    • 与以前的答案相比,您的答案有什么新变化?
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      压力测试 :- 在压力测试下,会进行各种活动以使现有资源超载并执行过多的工作,以试图破坏系统。

      基本区别如下

      click here to see the exact difference

      【讨论】:

        【解决方案5】:

        负载测试 = 在服务器上放置指定量的负载一段时间。 100 个并发用户 10 分钟。保证软件的稳定性。 压力测试 = 稳步增加负载量,直到软件崩溃。 10 个并发用户每 2 分钟增加一次,直到服务器崩溃。

        与举重进行比较:您“最大化”您的体重,看看您可以做 1 次重复(压力测试),然后在常规锻炼中,您完成 3 组 10 次重复的 85%(负载测试)

        【讨论】:

          【解决方案6】:

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

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

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

           .Total number of users.
          
           .Response Time
          
           .Through Put
          

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

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

           .Vusers
          
           .Think-Time
          

          例子:

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

          【讨论】:

            【解决方案7】:

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

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

            压力测试: 在压力测试下,会进行各种活动以使现有资源超载并使用过多的工作,以试图破坏系统。

            示例: 例如,像 OpenOffice.org 的 Writer1.1.0 这样的文字处理器被用于开发信件、演示文稿、电子表格等……我们压力测试的目的是加载多余的字符。

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

            【讨论】:

              【解决方案8】:

              Wikipedia 关于负载测试(粗体是我的):

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

              stress testing:

              了解系统内容量的上限。进行这种测试是为了确定系统在极端负载方面的稳健性,并帮助应用程序管理员确定如果当前负载远高于预期的最大值,系统是否能够充分运行强>.

              所以底线是:如果您正在测试正常的预期负载(您知道系统一次最多可供 100 个用户使用),这就是 负载测试。但是,当您想确定系统在极端负载(DoS,Slashdot effect)下的行为以及系统何时崩溃时,这就是压力测试

              【讨论】:

              • 所以它们基本上是一样的,但是负载是在正常负载下,压力大于正常负载?它们不是要测试系统的不同方面吗?
              • @Neeta:负载测试通过在请求之间注入随机暂停来模拟真实用户。压力测试可以简单地执行尽可能多的请求。但是测试场景可以是一样的。
              • @Neeta user2197712 的答案会更合适。我的理解是这样的:压力测试是在异常环境下发现系统在正常输入下的表现,而负载测试是在正常环境下发现系统在异常输入下的表现。
              猜你喜欢
              • 2010-09-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-04-08
              • 2010-10-05
              • 1970-01-01
              相关资源
              最近更新 更多