【问题标题】:Load / Performance tests (HTTP and Web)负载/性能测试(HTTP 和 Web)
【发布时间】:2011-10-03 13:36:52
【问题描述】:

我正在寻找一个负载测试工具,我需要的主要功能是:

  1. 分布(非常重要) - 我需要能够每秒运行 20,000 - 30,000 个请求(甚至更多),所以一台机器是不够的。它应该能够在 Amazon EC2 上进行通信(例如 jMeter,不能做到)
  2. 收集数据 - 是否可以生成图形或复杂数据并不重要,但我应该能够知道客户端和服务器的吞吐量是多少,发生了多少错误等。因为它会运行在多台计算机上,数据应该由工具本身收集(jMeter 再次这样做,但它有很多问题),我试图避免从不同的机器获取数据并“手动”合并它。
  3. 图表或更复杂的数据是不错的选择(例如:http://code.google.com/p/multi-mechanize/),但如果该工具不提供它,我应该能够从测试日志中获取这些数据。

我没有找到关于负载测试工具的好评(这就是我在这里问的原因),目前我要检查的主要工具是 Grinder,如果您使用过好的工具请分享:)

我使用过 jMeter,我决定寻找更好的工具。 jMeter 很旧,它适用于旧协议(所以我不能使用它分布在 EC2 上),它运行缓慢且难以使用,而且它的图表使其非常慢。

顺便说一句,它不一定是免费/开源的,如果它的成本高达数十或数百美元就可以了。

谢谢。

【问题讨论】:

    标签: load-testing stress-testing


    【解决方案1】:

    Locust 是一个很棒的负载测试工具,它满足所有 OP 的要求。

    就满足 OP 的要求而言,Locust 的一些功能:

    • 可以在主/从模式下运行以生成分布式负载
    • 让您以简单/可解析的方式访问原始和汇总的结果数据 格式
    • 与石墨/grafana 完美集成以满足您的可视化需求

    Locust 是开源的,用 Python 编写...虚拟用户也是用 Python 代码编写的。使用 Python 开发复杂工作负载的功能和易用性非常好(与 JMeter 笨拙的声明式 XML 样式相比)。

    Locust 开发是 hosted on Github 并且有几个活跃的提交者。


    在 Locust 网站上,标语是:

    “使用 Python 代码定义用户行为,并使用 数百万同时用户。”


    可选 Web UI 的屏幕截图:


    注意:我使用过其他答案中推荐的所有其他工具,而 Locust 则要好得多

    【讨论】:

      【解决方案2】:

      Visual Studio 的 Web 性能测试和负载测试听起来很合适。如果您获得 Visual Studio Ultimate 的许可证,然后获得 Visual Studio 控制器/代理的许可证,则控制器和代理将处理负载分配。这一切都有很好的记录,而且很容易设置。它具有一些可能满足您需求的默认报告,但也能够导出到 Excel,您可以在其中使用数据透视表(或 PowerPivot 等外部工具)创建任何自定义报告或图表。

      这里是快速参考指南:http://vsptqrg.codeplex.com/,更多信息可在网络上找到。

      【讨论】:

        【解决方案3】:

        问题表明无法在 Amazon ec2 上使用 JMeter [第 1 点]。这不是真的,它可能的,但这很困难,因为 JMeter 使用 RMI 进行通信,您必须使用隧道和更改端口才能使其工作。

        提到的另一个 JMeter 问题 [第 2 点] 是它在整理数据时存在“很多问题”。我怀疑这是指一个潜在的瓶颈,即来自多个客户端的所有数据都被写入一个位置。如果是这样,那么他的问题通常可以通过在属性中使用“批处理”或“统计”模式来解决,而且最新的 JMeter 版本 2.6 在这方面取得了进步。

        但是,我写了a script,它解决了这两个问题,并使在 ec2 上运行 JMeter 变得相当容易。

        【讨论】:

          【解决方案4】:

          您可以使用WebLOAD

          我已内置支持在 EC2 上自动启动负载机器,收集所有数据并具有良好的报告功能。

          【讨论】:

            【解决方案5】:

            对于这些数量的请求,我会看一个 Tsung,尽管(类似于 Jmeter)这在负载规范方面是 XML 声明性的。如果您更喜欢编写 Web 驱动程序,那么 Grinder 值得一看(都是开源的)。

            【讨论】:

              【解决方案6】:

              实际上我们使用 Amazon EC2 来运行 cloud load test 和 JMeter。这并不像你想的那么难。 JMeter 比两个工具(Grinder、Tsung)的优势在于文档和社区。

              jMeter 很旧,它适用于旧协议(所以我不能使用它 分布在 EC2 上)

              JMeter 上一晚的构建是昨天,这意味着它并没有您想象的那么旧。您可以查看here。 EC2 使用 WSDL 进行 API 调用,不是新的通用协议,这里是EC2 API documentation

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-06-06
                • 1970-01-01
                • 2010-11-14
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多