如何对Node.js服务器进行负载测试?

28

我想使用Node.js和MongoDB编写一个Web应用程序,并且我有任务来测试它。我想知道是否有像JMeter或其他工具用于对Node.js进行负载/压力测试的工具?

编辑

我的应用程序将是一种信息提取类型的应用程序,客户希望每个文档的提取时间不超过10秒。目前我已经使用C#编写了同样的应用程序,但它无法达到客户的期望。然后我发现了这个高效的Node.js。我认为Node.js可以为我提供很多帮助。

请指点!!!


2
适当的负载测试取决于您的应用程序所做的事情。没有通用工具可以测试所有Node.js应用程序。请记住,Node.js应用程序甚至不必提供Web界面!最好的方法是编写自己的应用程序,模拟使用您的Node应用程序。 - Brad
我的应用程序将是一种信息提取类型的应用程序。 - Shekhar
3个回答

20

试试nodeload:它是一个用于负载测试HTTP服务的node.js模块集合。

作为开发者,你应该能够编写负载测试并获得有用的报告,而无需学习另一个框架。你应该能够通过示例构建,并选择性地使用工具的部分来适应你的任务。作为库意味着你可以根据需要使用nodeload的任意数量或部分,同时也可以利用完整编程语言的强大功能创建负载测试。例如,如果你需要以给定的速率执行某个函数,只需使用“nodeload/loop”模块,然后自己编写其余部分。

刚刚发现这个软件包已不再维护,以下是一些活跃的分支:


12
为什么不能用JMeter测试Node服务器?对于大多数负载测试而言,服务器使用的语言并不重要,你只是向其发送一堆请求。

无论如何,您可以尝试实现在node中的loadtest

对所选HTTP或WebSockets URL运行负载测试。其API可轻松集成到自己的测试中。

编辑:

此答案提供了更多选项:

NodeJs压力测试工具/方法[已关闭]


5
尝试使用artillery进行负载测试。以下是其功能,其描述摘自文档:
  • 多种协议:支持负载测试HTTP、WebSocket、Socket.io、Kinesis、HLS等协议。
  • 场景:支持复杂场景,可测试API或Web应用程序中的多步交互(非常适合电子商务、事务API、游戏服务器等)。
  • 负载测试和功能测试:可重复使用相同的场景定义来运行性能测试或功能测试,测试API或后端。
  • 性能指标:获取详细的性能指标(延迟、每秒请求数、并发数、吞吐量)。
  • 可脚本化:使用任何有用的npm模块,在JS中编写自定义逻辑。
  • 集成:支持statsd实时报告(与Datadog、Librato、InfluxDB等集成)。
  • 可扩展:编写自定义报告、自定义插件、自定义协议引擎等。
  • 还有很多!HTML报告、漂亮CLI、使用CSV文件进行参数化等。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接