raj007
(Raaj Thakur)
1
const
newman = require('newman');
` config = require('./postman-config.js').CONFIG,`
collectionPath = 'postman-collection.json',
iterationCount = 5,
threadCount = 5,
after = require('lodash').after;
exports.test = function() {
// Use lodash.after to wait till all threads complete before aggregating the results
let finished = after(threadCount, processResults);
let summaries = [];
console.log(`Running test collection: ${collectionPath}`);
console.log(`Running ${threadCount} threads`);
for (let i = 0; i < threadCount; i++) {
testThread(summaries, finished, collectionPath);
}
};
function processResults(summaries) {
let sections = ['iterations', 'items', 'scripts', 'prerequests', 'requests', 'tests', 'assertions', 'testScripts', 'prerequestScripts'];
let totals = summaries[0].run.stats;
for (let i = 1; i < threadCount; i++) {
let summary = summaries[i].run.stats;
for (let j = 0; j < sections.length; j++) {
let section = sections[j];
totals[section].total += summary[section].total;
totals[section].pending += summary[section].pending;
totals[section].failed += summary[section].failed;
}
}
console.log(`Run results: ${JSON.stringify(totals, null, 2)}`);
}
function testThread(summaries, callback, collectionPath) {
console.log(`Running ${iterationCount} iterations`);
newman.run({
iterationCount: iterationCount,
environment: config,
collection: require(collectionPath),
reporters: []
}, function (err, summary) {
if (err) {
throw err;
}
console.log('collection run complete');
summaries.push(summary);
callback(summaries);
});
}