2015-03-13 98 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的。