node.js测量多个请求的响应时间

时间:2015-03-13 15:35:31

标签: javascript node.js request

有没有办法在循环中发送多个请求,并测量每个请求的时间? 在python我会做:

import requests
import time
for i in range(100):
        start = time.time()
        r = requests.get("http://localhost:80")
        end = time.time()
        total_ms = 1000 * (end - start)
        print("%.2f\n" % total_ms)

在node.js中我尝试过:

var request = require('request');  
for(var i=0;i<100;i++){
    start = Date.now();
    request.get('http://localhost:80/', function () {
        end = Date.now();
        console.log(end-start);
    })
}

但显然它没有给我我需要的东西。有什么我想念的吗?

至于为什么我正在使用节点:我似乎在我们的服务器上得到一些随机响应峰值,我想用不同于python和bash卷发的东西进行测试。

1 个答案:

答案 0 :(得分:1)

如果你真的想在nodejs中这样做,这是一个例子:

var request = require('request');
var moment = require('moment');

    function makeRequest() {
        var startDate = moment();
        request('http://localhost', function (error,response,body) {
            var endDate = moment();
            console.log('Request took: ' + endDate.diff(startDate) + ' ms.');

        });
    }

    for(var i = 0; i < 100; i++){
        makeRequest();
    }

但我宁愿建议像JMeter一样使用压力加载工具。