Run multiple Postman Collection in parallel — Stress-Tests

A known limitation of the Postman Collection Runner is that it can only execute collection in a consecutive way. This is just a simple implementation of the solution explained in this StackOverflow conversation.

Create your Postman Collection and corresponding tests

Here I needed to attack first /api/persons to get the list of persons ids.


And then /api/persons/:id for each person in the list.


To do that I used the postman.setNextRequest() tricks that specify the next request that will be executed in the collection run. And in each run I get the last personId and pop() it from the array in environment variables.

Export your collection and the environment variables


And save the files in a postman/ directory.

Create the new npm project

Simply run npm init -y and install the 3 dependencies: npm i async newman path

  "name": "newman_parallel",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "async": "^3.1.0",
    "newman": "^4.5.6",
    "path": "^0.12.7"

The script !

It’s kind of self explanatory, update the path for your postman collection and environment, specify the number of concurrent run you want to launch with the constant PARALLEL_RUN_COUNT and execute the script with npm start

const path = require('path')
const async = require('async')
const newman = require('newman')


const parametersForTestRun = {
    collection: path.join(__dirname, 'postman/postman_collection.json'), // your collection
    environment: path.join(__dirname, 'postman/localhost.postman_environment.json'), //your env
    reporters: 'cli'

parallelCollectionRun = function (done) {, done);

let commands = []
for (let index = 0; index < PARALLEL_RUN_COUNT; index++) {

// Runs the Postman sample collection thrice, in parallel.
    (err, results) => {
        err && console.error(err);

        results.forEach(function (result) {
            var failures =;
   ? JSON.stringify(failures.failures, null, 2) :
                `${} ran successfully.`);


And here you can play around with your api and build some stress tests to see how it handles the pressure. You can find the code in the Github repo.

← Back to home