负载/性能测试(HTTP和Web)

时间:2011-10-03 13:36:52

标签: load-testing stress-testing

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

  1. 分发(非常重要) - 我需要能够每秒运行20,000到30,000个请求(以及更多),因此一台机器是不够的。它应该能够在Amazon EC2上进行通信(例如,jMeter,不能执行此操作)
  2. 收集数据 - 它是否可以产生图形或复杂数据并不重要,但我应该能够知道客户端和服务器的吞吐量是多少,发生了多少错误等等。因为它会运行在多台计算机上,数据应该由工具本身收集(jMeter再次这样做,但它有很多问题),我试图避免从不同的机器获取数据并“手动”合并它。
  3. 图表或更复杂的数据很不错(例如:http://code.google.com/p/multi-mechanize/),但如果工具没有提供它,我应该能够从测试日志中获取这些数据。
  4. 我没有找到关于负载测试工具的好评(这就是我在这里问的原因),目前我要检查的主要工具是Grinder,如果你曾经使用过好工具请分享:)

    我和jMeter合作过,我决定寻找更好的工具。 jMeter是旧的,它适用于旧协议(所以我无法使用它在EC2上分发),它使用起来既慢又难,而且它的图表使它非常慢。

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

    感谢。

6 个答案:

答案 0 :(得分:1)

Locust是一款出色的负载测试工具,它符合OP的所有要求。

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

  • 可以在主/从模式下运行以进行分布式负载生成
  • 使您可以使用simple / parseable访问原始和汇总的结果数据 格式
  • 与石墨/ grafana很好地集成以满足您的可视化需求

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

蝗虫发展是hosted on Github并且有几个活跃的提交者。

在Locust网站上,标语是:

  

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

可选网络用户界面的屏幕截图:

Screenshot of Locust Web UI

注意:我已经使用了其他答案中推荐的所有其他工具,而且Locust远远优于

答案 1 :(得分:0)

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

以下是快速参考指南:http://vsptqrg.codeplex.com/,网上提供了更多信息。

答案 2 :(得分:0)

该问题表明,无法在Amazon ec2上使用JMeter [第1点]。事实并非如此, 可能,但由于JMeter使用RMI进行通信而您必须使用隧道并更改端口以使其工作,因此很难实现。

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

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

答案 3 :(得分:0)

您可以使用WebLOAD

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

答案 4 :(得分:0)

对于这些请求数量,我看起来像Tsung虽然(类似于Jmeter),但就负载规范而言,这是XML声明。如果您对编写Web驱动程序更为熟悉,那么Grinder将值得(参见开源)。

答案 5 :(得分:0)

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

  

jMeter是旧的,它适用于旧协议(所以我无法使用它   分发在EC2上)

JMeter昨晚的建造是昨天,这意味着它没有你想象的那么老。你可以查看它here。 EC2使用WSDL进行API调用,它的常用协议不是新的,这里是EC2 API documentation