我开发了一些基于Node.js的REST API,我想测试API的性能。是否有任何工具可以轻松计算每个API调用所需的时间?
或者如何实现测量REST API对请求响应所需的时间。
我开发了一些基于Node.js的REST API,我想测试API的性能。是否有任何工具可以轻松计算每个API调用所需的时间?
或者如何实现测量REST API对请求响应所需的时间。
以下是使用 express.js 进行精确时间测量的事件注入示例。
请在路由之前添加以下代码:
app.all('*', function(req, res, next) {
var start = process.hrtime();
// event triggers when express is done sending response
res.on('finish', function() {
var hrtime = process.hrtime(start);
var elapsed = parseFloat(hrtime[0] + (hrtime[1] / 1000000).toFixed(3), 10);
console.log(elapsed + 'ms');
});
next();
});
它将保存每个请求的启动时间,并在响应发送到客户端后触发finish
事件。
感谢user419127指出了“finish”事件。
保持简单,使用Node中的console.time('timerName');
和console.timeEnd('timerName')
功能。'timerName'显然是可配置的。
例子:
console.time('getCustomers');
console.timeEnd('getCustomers')
getCustomers: 58毫秒
那么,像Apache JMeter这样的性能测量工具怎么样?您可以轻松地使用它来模拟对服务器的(重)负载,然后测量响应时间和其他性能指标。它提供了多个图形表示。
这篇博客文章展示了如何为Web-API设置基于HTTP的性能测试。我用这种方式来测试我的RESTful Web服务。
app.use(express.logger('dev'));
;这将记录(到stdout
)请求花费的时间。 - robertklep