我想用node.js和MongoDB编写一个Web应用程序,我有任务甚至测试它。我想知道是否有任何工具如JMeter或其他任何工具用于Node.js的负载/压力测试?
修改
我的应用程序将是信息提取类应用程序,客户端期望一个文档的提取不应超过10秒。目前我有相同的应用程序用C#编写,但它没有扩展到客户的期望。然后我遇到了这个美丽而快速的Node.js.我认为Node.js可以帮助我。
请指教!!!
答案 0 :(得分:15)
尝试nodeload:它是用于负载测试HTTP服务的node.js模块的集合。
作为开发人员,您应该能够编写负载测试并获取 信息丰富的报告,无需学习另一个框架。您 应该能够通过示例构建并有选择地使用a的部分 适合您任务的工具。作为图书馆意味着你可以使用as 很多或者尽可能少的节点负载,你可以创建负载 使用完整的编程语言进行测试。例如,如果 你需要以给定的速率执行某些功能,只需使用 'nodeload / loop'模块,并自己编写其余部分
刚刚发现这个软件包已经不再开发了,所以这里有一些活跃的分支:
答案 1 :(得分:8)
为什么你不能用JMeter测试节点服务器?对于大多数负载测试而言,您的服务器所使用的语言并不重要,您只需使用大量请求进行操作即可。
在任何情况下,您都可以尝试在节点中实现的loadtest。
对选定的HTTP或WebSockets URL运行负载测试。 API允许在您自己的测试中轻松集成。
编辑:
这个答案提供了更多选择:
答案 2 :(得分:1)
尝试artillery。以下是其功能,其描述来自文档:
- 多种协议:加载测试HTTP,WebSocket,Socket.io,Kinesis,HLS等。
- 方案:支持复杂的方案以测试您的API或Web应用程序中的多步骤交互(非常适合电子商务,交易API,游戏服务器等)。
- 负载测试和功能测试:重复使用相同的方案定义以在您的API或后端上运行性能测试或功能测试。
- 性能指标:获取详细的性能指标(延迟,每秒请求,并发,吞吐量)。
- 可编写脚本:使用数千个有用的npm模块中的任何一个,在JS中编写自定义逻辑。
- 集成:statsd支持开箱即用的实时报告(与Datadog,Librato,InfluxDB等集成)。
- 可扩展:编写自定义报告程序,自定义插件,自定义协议引擎等。
- 还有更多! HTML报告,出色的CLI,使用CSV文件进行参数化。