web-dev-qa-db-ja.com

node.jsサーバーの負荷テストを行う方法は?

Node.jsとMongoDBを使用して1つのWebアプリケーションを作成したいのですが、テストするタスクさえあります。 Node.jsの負荷/ストレステスト用のJMeterなどのツールがあるかどうか知りたいのですが?

[〜#〜]編集[〜#〜]

私のアプリケーションは、情報抽出の一種のアプリケーションになり、クライアントは、1つのドキュメントの抽出に10秒以上かかることはないと想定しています。現在、私は同じアプリケーションをC#で作成していますが、クライアントの期待に合わせて拡張できません。次に、この美しくて高速なNode.jsを見つけました。 Node.jsは私を大いに助けてくれると思います。

啓発してください!!!

20
Shekhar

試してみてください nodeload :HTTPサービスの負荷テスト用のnode.jsモジュールのコレクションです。

開発者は、別のフレームワークを習得しなくても、負荷テストを記述して有益なレポートを取得できるはずです。例を挙げてビルドし、自分のタスクに合ったツールの部分を選択的に使用できる必要があります。ライブラリであることは、意味のある量のノードロードを使用できることを意味し、完全なプログラミング言語の能力を使用して負荷テストを作成できます。たとえば、特定のレートで関数を実行する必要がある場合は、「nodeload/loop」モジュールを使用し、残りを自分で記述します

このパッケージはもう開発中ではないので、ここにいくつかのアクティブなフォークがあります:

17
laktak

JMeterでノードサーバーをテストできないのはなぜですか?ほとんどの負荷テストでは、サーバーの言語に関係なく、大量のリクエストでサーバーを攻撃するだけです。

いずれの場合でも、ノードに実装されている loadtest を試すことができます。

選択したHTTPまたはWebSockets URLで負荷テストを実行します。 APIを使用すると、独自のテストに簡単に統合できます。

編集:

この回答は、より多くのオプションを提供します:

NodeJsストレステストツール/メソッド[終了]

8
anthonygore

砲兵 を試してください。ここにその機能があります。その説明はドキュメントから取られています:

  • 複数のプロトコル:HTTP、WebSocket、Socket.io、Kinesis、HLSなどの負荷テスト。
  • シナリオ:APIまたはWebアプリでのマルチステップの相互作用をテストするための複雑なシナリオのサポート(eコマース、トランザクションAPI、ゲームサーバーなどに最適)。
  • 負荷テストと機能テスト:同じシナリオ定義を再利用して、APIまたはバックエンドでパフォーマンステストまたは機能テストを実行します。
  • パフォーマンスメトリック:詳細なパフォーマンスメトリック(レイテンシ、1秒あたりのリクエスト数、同時実行性、スループット)を取得します。
  • スクリプト可能:何千もの便利なnpmモジュールのいずれかを使用して、JSでカスタムロジックを記述します。
  • 統合:リアルタイムレポート用のstatsdサポート(Datadog、Librato、InfluxDBなどと統合)。
  • 拡張可能:カスタムレポーター、カスタムプラグイン、カスタムプロトコルエンジンなどを記述します。
  • もっと! HTMLレポート、Nice CLI、CSVファイルによるパラメーター化。
1
ns16