2015-03-13 2 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 curls.

+0

Не уверен, что это именно то, что вы хотите для отладки своей проблемы, но для бенчмаркинга вы можете попробовать wrk - https://github.com/wg/wrk – cgf

ответ

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.

Смежные вопросы