如何在Node.js应用程序上执行loadtest

请,我需要一个关于如何高效地testing完成的Node.js应用程序的专家build议。 我想要做的是

1.我想运行testing来刺激例如100个用户都将数据插入到mongoDB中

2. 100个用户从数据库中回顾logging

3. 100个用户可能会从数据库中删除,我想检查系统如何在这样的情况下执行。 我读了关于npm的loadtest,在我看来,它是一个很好的候选人,但是我不知道我是否可以使用这个将数据(post / get)请求传递到数据库中,看看系统将如何响应像100个用户都将真实数据发布到数据库中。 我想,loadtest有助于检查例如20秒的响应时间,也许有40个并发请求,这是我对模块的基本认识,我不知道它是否具有其他function,比如我期望的function。 任何build议或线索去这个将不胜感激,因为我希望尽可能避免重新devise车轮谢谢

你可以使用loadtest模块。 但是,首先你应该定义路由进程和呼叫

loadtest -c 10 --rps 100 http://example.com/api/collection 

– 每秒请求的含义

你可以从https://github.com/alexfernandez/loadtest得到它

没有理由绝对需要使用node.js实用程序来对node.js应用程序进行负载testing。 事实上,我build议你使用支持multithreading的语言。 有了节点,我会担心阻塞事件循环,等待I / O并得到不准确的结果。

我最近尝试了蔬菜 ,我很高兴。 您可以按原样使用它,而不必编写任何Golang代码(虽然它是开源的,您可以随意修改)。 它支持带有有效载荷的标题和POST的URL。 它是用Golang写的,它支持multithreading,甚至可以报告它的延迟。 您可以立即获得HTML,JSON和纯文本的报告

最后,蔬菜比例很好。 看来你想发布POST,GET和DELETE。 你可以启动一个实例来完成你的GET装载,另一个用于POST,另一个用于DELETES。 或者你可以POST一堆数据,然后在同一个虚拟机上删除数据。 当所有的虚拟机运行testing后,您可以单独查看结果或汇总它们。

您可以使用Apache JMeter进行负载testing:

  • Web应用程序前端 – 支持logging和重放
  • 网页服务
  • MongoDB直接
  • 以上的任何组合。