Подтвердить что ты не робот

Как выполнить нагрузочное тестирование для websockets

Мы создаем функцию группового чата, в которой используются веб-узлы. Мы хотим проверить, сколько соединений может поддерживать наша текущая инфраструктура.

В основном это сводится к тому, как имитировать веб-узел.

4b9b3361

Ответ 1

Я могу дать вам предложение из моего недавнего опыта. Вы можете подключить виртуальные клиенты на основе webkit Phantom к вашему серверу чата и измерить использование ресурсов (например, в CPU, памяти, может использоваться оболочка script или другая утилита, или вы можете профилировать свою службу)

var system = require('system');
var page = require('webpage').create();
page.viewportSize = { width: 1024, height: 768 };

page.open("<URL to chat server service>", function (status) {
    // Check for page load success
    if (status !== "success") {
        console.log("Unable to connect");
        phantom.exit();
    } else {
        console.log("Client connected  ");
        //after connecting you may extract further information, taking screenshots etc. refer the phantom.js API for further details
    }
});

Используете ли вы какую-либо инфраструктуру, такую ​​как socket IO для связи с веб-сайтами?

Ответ 3

Прошло несколько лет, есть еще один новый инструмент для тестирования нагрузки для Websockets: https://github.com/observing/thor

Ответ 4

Как насчет использования Jmeter для этой цели. Хотя он еще не поддерживает WebSocket напрямую, вы можете использовать пробоотборник TCP для выполнения этой работы.

В качестве альтернативы вы можете получить подключаемый модуль, который добавит поддержку WebSocket для JMeter: http://github.com/maciejzaleski/JMeter

Излишне говорить, что подключаемый модуль JMeter и WebSocket доступен с открытым исходным кодом и доступен для использования.

Ответ 5

Для этого вы можете использовать инструмент тестирования нагрузки.

Я использовал WebLOAD в аналогичном проекте. Он регистрирует веб-трафик при использовании браузера - он регистрирует регулярные HTTP-запросы, а также трафик веб-сокетов - вы можете снова воспроизводить script со многими пользователями и измерять поведение сервера.

Ответ 6

Я бы сделал это с помощью Node.js, чтобы вы могли использовать ту же самую клиентскую библиотеку websocket, которую вы также используете в реальном клиенте.