0

我正在测试我的 nodeJS localhost 服务器,并使用了火炮工具来测试服务器上的负载。所以,这里我只想测试一下服务器的并发级别,比如服务器可以同时处理多少个请求。请查看以下代码和火炮配置文件。

我的nodeJS代码 -

const express = require('express');

const app = express();

app.get('/', (req, res) => {
  // I've used the 5 second delay to make the proper async case
  setTimeout(() => res.send('Welcome node!!'), 10000); 
});

const server = app.listen(process.env.PORT || 3000, () => {
 const host = server.address().address
 const port = server.address().port
 console.log("Example app listening at http://localhost", host, port)
})

火炮配置文件 -

{
  "config": {
    "target": "http://localhost:3000",  
    "phases": [{
      "duration": 1,
      "arrivalRate": 10000
    }]  
  },
  "scenarios": [{
    "flow": [{
      "get" : {"url": "/"}
    }]
  }]
}

In short, Using artillery, I'm sending the 1000 requests/second.

但是在这里我想知道,尽管每个请求需要 10 秒来发送响应(我已将超时设置为 10 秒),但 Artillery 如何给出成功的结果以及服务器如何能够处理 10000 个请求/秒

火炮日志 -

在此处输入图像描述

4

1 回答 1

1

您在上面共享的屏幕截图中的结果对我来说看起来很合理。您尝试在测试的 1 秒内发送 10,000 个请求,而您的客户端、服务器、网络和可能的其他因素部分或总和支持每秒约 526 个请求 (RPS),因此 ~19-测试的第二个持续时间。考虑到您的快速服务器配置中指定的超时以及所涉及的相对微不足道的处理/有效负载,您的响应时间都略大于 10 秒,正如预期的那样。您是否希望在 10 多秒(~10,000 RPS)或类似的时间内完成整个测试?

于 2018-08-13T20:49:46.493 回答