有没有一种方法可以循环发送多个请求,并测量每个请求的时间?
在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/