有没有一种方法可以循环发送多个请求,并测量每个请求的时间?
在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 curl的东西对其进行测试。

最佳答案

如果您真的想在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)。

关于javascript - node.js测量多个请求的响应时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29036313/

10-09 21:12