0

Web サイト、デスクトップ アプリケーション、iOS アプリケーションなどからの呼び出しを処理する node.js で記述された API があります。おそらく 50 以上のエンドポイントがあり、各エンド ポイントは、目的に応じて 1 つのパラメーターから 10 ~ 20 までの任意のパラメーターを受け入れることができます。達成すること。これらは、GET/POST/PUT/DEL のいずれかです。

API の負荷テストとユーザー アクティビティのシミュレーションを開始したいと考えています。

私が探しているのは、API 呼び出しとそれと共に渡されたパラメーターを論理的な方法でキャプチャする方法に関する提案です。

私はアプリを実行するために永遠に使用し、すべてがログファイルに書き込まれるため、最初の反応は、エンドポイントと req.params および req.body をキャプチャする高速ルートにミドルウェアを追加するようなことをすることでしたが、次に、このミドルウェアを 50 以上のルートすべてに配置する必要があり、面倒です。

誰もが以前にこのようなことをしており、それらの呼び出しで呼び出し/データをキャプチャする方法と、API から返されたものをキャプチャする方法について良い考えを持っています。

おそらくいくつかのモジュール?

他の人が呼び出しの偽のセットを構築できるように、これを読み取り可能な形式にする必要があります...したがって、出力されない限り、生のログファイルはあまり役に立ちません....「かなり」。

ありがとう!

4

1 に答える 1

3

あなたは正しい方向に進んでいます–を介してロガーミドルウェアを追加するだけです。app.useこれは、(各ルートに追加するのではなく)すべてのリクエストでミドルウェアを実行します。

実際、Expressのドキュメントには、ロガーミドルウェアの使用例が示されています。

var express = require('express');
var app = express();

// simple logger
app.use(function(req, res, next){
  console.log('%s %s', req.method, req.url);
  next();
});

Connect(Expressが構築されている)はロガーミドルウェアを提供するので、次のことができます。

var logFile = fs.createWriteStream('./myLogFile.log', {flags: 'a'});    
app.use(express.logger({stream: logFile}));
于 2013-03-22T15:52:05.297 に答える