2015-03-13 39 views
0

有没有办法在循环中发送多个请求,并测量每个请求的时间? 在Python中我会做:node.js测量多个请求的响应时间

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卷发的东西来测试它。

+0

不确定这正是你想要调试你的问题,但基准你可以尝试wrk - https://github.com/wg/wrk – cgf 2015-03-13 16:06:24

回答

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的。