有没有办法在循环中发送多个请求,并测量每个请求的时间? 在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卷发的东西进行测试。
答案 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一样使用压力加载工具。