Performance Testing
Using Tools
Custom Solution
const _ = require('lodash');
const cron = require('node-cron');
const axios = require('axios');
let sent = 0;
let received = 0;
let inProgress = 0;
console.log("Starting...");
const reportStatus = function (values) {
let report = '';
values.forEach(response => {
if (_.has(response, 'status')) {
report += response.status + ', ';
} else if (_.has(response, 'code')) {
report += response.code + ', ';
} else {
report += response.response.status + ', ';
}
})
console.log(`Report: ${report}`);
received += values.length;
inProgress -= values.length;
console.log(`Sent: ${sent}, Received: ${received}, InProgress: ${inProgress}`);
};
const createTasks = function () {
let howMany = 5;
const tasks = _.range(0, howMany).map(it => {
return axios.get('https://api.github.com/search/repositories?q=github&page=1&per_page=1')
});
return tasks;
};
const task = cron.schedule('* * * * * * *', function () {
console.log(new Date());
const tasks = createTasks();
let howMany = tasks.length;
sent += howMany;
inProgress += howMany;
console.log(`Sent: ${sent}, Received: ${received}, InProgress: ${inProgress}`);
Promise.all(tasks.map(p => p.catch(e => e)))
.then(function (values) {
reportStatus(values);
});
});
task.start();Last updated