node.js 测量多个请求的响应时间
node.js measure response time with multiple requests
有没有办法循环发送多个请求,并测量每个请求的时间?
在 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 卷曲的东西来测试它。
如果你真的想在 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 等压力负载工具。
有没有办法循环发送多个请求,并测量每个请求的时间? 在 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 卷曲的东西来测试它。
如果你真的想在 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 等压力负载工具。