Инструмент NodeJS Artillery.io, дающий запутанный результат

Я проводил тестирование моего локального сервера nodeJS и использовал артиллерийский инструмент для проверки нагрузки на сервер. Итак, здесь я просто хочу проверить уровень параллелизма сервера, например, сколько запросов сервер может обрабатывать одновременно. Пожалуйста, посмотрите на приведенный ниже код и файл конфигурации артиллерии.

Мой код 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.

Но здесь мне интересно, как Artillery дает успешный результат и как сервер может обрабатывать 10000 запросов в секунду, несмотря на то, что каждый запрос занимает 10 секунд для отправки ответа (я установил таймаут в 10 секунд)

Артиллерийский журнал -

1 ответ

Результаты на скриншоте, которым вы поделились выше, выглядят для меня разумными. Вы пытаетесь отправить 10 000 запросов в течение 1-секундной продолжительности теста, в то время как ваш клиент, сервер, сеть и, возможно, другие факторы, частично или в совокупности, поддерживают ~526 запросов в секунду (RPS), следовательно, ~19- вторая продолжительность вашего теста. Ваше время отклика немного больше 10 секунд, как и ожидалось, учитывая время ожидания, указанное в конфигурации вашего экспресс-сервера, и относительно незначительную обработку / полезную нагрузку. Вы надеялись увидеть, что весь тест будет завершен всего за 10 секунд (~10000 RPS) или что-то подобное?

Другие вопросы по тегам