web-dev-qa-db-ja.com

Websocketの負荷テストを行う方法

ウェブソケットを使用するグループチャット機能を構築しています。現在のインフラストラクチャがサポートできる接続の数をテストする必要があります。

基本的には、Websocketをシミュレートする方法に要約されます。

41
Pankaj

私の最近の経験から提案をすることができます。 WebkitベースのPhantom仮想クライアントをチャットサーバーに接続し、リソース使用量を測定できます(つまり、CPU、メモリ、シェルスクリプトまたは別のユーティリティを使用しているか、サービスをプロファイルできます)

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
    }
});

Websocket通信にsocket IOのようなフレームワークを使用していますか?

8

数年が経ち、Websocketの負荷テストを行う別の新しいツールがあります: https://github.com/observing/thor

5
cooler

この目的のためにJmeterを使用してはどうですか。まだWebSocketを直接サポートしていませんが、TCPサンプラーを使用してジョブを完了できます。

または、JMeterにWebSocketサポートを追加するプラグインを入手できます。 http://github.com/maciejzaleski/JMeter

言うまでもなく、JMeterとWebSocketプラグインはどちらもオープンソースであり、無料で使用できます。

3
Maciej Zaleski

そのために負荷テストツールを使用できます。

同様のプロジェクトで WebLOAD を使用しました。ブラウザを使用するときにWebトラフィックを記録します-通常のHTTPリクエストとWebソケットトラフィックも記録します-その後、多くのユーザーでスクリプトを再生し、サーバーの動作を測定できます。

1
Yasei No Umi

Node.jsでそれを行うので、実際のクライアントでも使用するものと同じwebsocketクライアントライブラリを使用できます。

0
Tuomas Silen

私はtsungで素晴らしい経験をしました http://tsung.erlang-projects.org/

0
simonC