0

我有一个用 node.js 编写的 api,它处理来自网站、桌面应用程序、iOS 应用程序等的调用。可能有 50 多个端点,每个端点可以接受从 1 个参数到可能 10-20 的任何地方,具体取决于意图来完成。这些可以是 GET/POST/PUT/DEL

我想开始对我的 API 进行负载测试并模拟用户活动。

我正在寻找的是有关如何捕获 API 调用以及以逻辑方式与其一起传递的参数的建议。

我永远使用来运行我的应用程序,所有内容都写入日志文件,所以我最初的反应是做一些事情,比如在快速路由中添加一个中间件,以捕获端点以及 req.params 和 req.body 但是然后我需要把这个中间件放在所有 50 多条路线中,有点乏味。

任何人以前都做过类似的事情,并且对如何使用这些调用捕获调用/数据以及可能捕获从我的 API 返回的内容有一个很好的想法。

也许一些模块?

我需要以可读的格式提供给其他人,以便他们可以构建一组虚假的调用......所以原始日志文件并没有真正的帮助,除非它们被输出......“漂亮”。

谢谢!

4

1 回答 1

3

您走在正确的轨道上——只需通过添加您的记录器中间件app.use,它会在每个请求上运行中间件(而不是将其添加到每个路由)。

事实上,Express 文档给出了一个使用 logger 中间件的例子:

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 的基础上)提供了logger middleware,所以你可以这样做:

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