I want to POST data from Postman Google Chrome extension.
I want to make 10 requests with different data and it should be at the same time.
Is it possible to do such in Postman?
If yes, can anyone explain to me how can this be achieved?
I want to POST data from Postman Google Chrome extension.
I want to make 10 requests with different data and it should be at the same time.
Is it possible to do such in Postman?
If yes, can anyone explain to me how can this be achieved?
I guess there's no such feature in postman as to run concurrent tests.
If I were you, I would consider Apache jMeter, which is used exactly for such scenarios.
Regarding Postman, the only thing that could more or less meet your needs is - Postman Runner.
There you can specify the details:
The runs won't be concurrent, only consecutive.
Do consider jMeter (you might like it).
Postman doesn't do that but you can run multiple curl
requests asynchronously in Bash:
curl url1 & curl url2 & curl url3 & ...
Remember to add an &
after each request which means that request should run as an async job.
Postman however can generate curl snippet for your request: https://learning.getpostman.com/docs/postman/sending_api_requests/generate_code_snippets/
I don't know if this question is still relevant, but there is such possibility in Postman now. They added it a few months ago.
All you need is create simple .js file and run it via node.js. It looks like this:
var path = require('path'),
async = require('async'), //https://www.npmjs.com/package/async
newman = require('newman'),
parametersForTestRun = {
collection: path.join(__dirname, 'postman_collection.json'), // your collection
environment: path.join(__dirname, 'postman_environment.json'), //your env
};
parallelCollectionRun = function(done) {
newman.run(parametersForTestRun, done);
};
// Runs the Postman sample collection thrice, in parallel.
async.parallel([
parallelCollectionRun,
parallelCollectionRun,
parallelCollectionRun
],
function(err, results) {
err && console.error(err);
results.forEach(function(result) {
var failures = result.run.failures;
console.info(failures.length ? JSON.stringify(failures.failures, null, 2) :
`${result.collection.name} ran successfully.`);
});
});
Then just run this .js file ('node fileName.js' in cmd).
More details here
Not sure if people are still looking for simple solutions to this, but you are able to run multiple instances of the "Collection Runner" in Postman. Just create a runner with some requests and click the "Run" button multiple times to bring up multiple instances.
Run all Collection in a folder in parallel:
'use strict';
global.Promise = require('bluebird');
const path = require('path');
const newman = Promise.promisifyAll(require('newman'));
const fs = Promise.promisifyAll(require('fs'));
const environment = 'postman_environment.json';
const FOLDER = path.join(__dirname, 'Collections_Folder');
let files = fs.readdirSync(FOLDER);
files = files.map(file=> path.join(FOLDER, file))
console.log(files);
Promise.map(files, file => {
return newman.runAsync({
collection: file, // your collection
environment: path.join(__dirname, environment), //your env
reporters: ['cli']
});
}, {
concurrency: 2
});
In postman's collection runner you can't make simultaneous asynchronous requests, so instead use Apache JMeter instead. It allows you to add multiple threads and add synchronizing timer to it
If you are only doing GET requests and you need another simple solution from within your Chrome browser, just install the "Open Multiple URLs" extension:
https://chrome.google.com/webstore/detail/open-multiple-urls/oifijhaokejakekmnjmphonojcfkpbbh?hl=en
I've just ran 1500 url's at once, did lag google a bit but it works.
If you need to generate more consecutive requests (instead of quick clicking SEND button). You can use Runner. Please note it is not true "parallel request" generator.
File->New Runner Tab
Now you can "drag and drop" your requests from Collection and than keep checked only request you would like to generate by a Runner setting 10 iterations (to generate 10 requests ) and delay for example to 0 (to make it as fast as possible).
Easiest way is to get => Google Chrome "TALEND API TESTER" Go to help + type in Create Scenario ...or just go to this link => https://help.talend.com/r/en-US/Cloud/api-tester-user-guide/creating-scenario
I was able to send several POST API calls simultaneously.
Postman has added testing API with performance tab and can run multiple request at the same time.
This also come with metrics as how much your API performs stated in here
this answer is based of @walter33
You can use Fiddler with started traffic capture to record manual queries from Postman, then select them in Fiddler's sessions list as much as you want and replay (press R key) - they would run in parallel.
https://docs.telerik.com/fiddler/generate-traffic/tasks/resendrequest
pm.sendRequest is asynchronous, and will execute a single request in a non-blocking manner. Knowing this, it is possible to take advantage of this by stacking up asynchronous pm.sendRequest() calls in a pre-request script either on a folder or request. The caveat here is that the actual request while necessary for postman to execute anything is not relevant to the test.
I setup a quick concurrency test using two dummy requests (dummy and dummy2) like so (pre-requests and tests in my case is on the folder level. All requests are to the postman echo endpoint): ConcurrentEcho ONE Pre-request Script:
pm.sendRequest('http://postman-echo.com/get', function(err,res) {
console.log('executing request 1');
pm.collectionVariables.set('res1', res);
})
pm.sendRequest('http://postman-echo.com/get', function(err,res) {
console.log('executing request 2');
pm.collectionVariables.set('res2', res);
})
pm.sendRequest('http://postman-echo.com/get', function(err,res) {
console.log('executing request 3');
pm.collectionVariables.set('res3', res);
})
Test:
const res1 = pm.collectionVariables.get('res1');
const res2 = pm.collectionVariables.get('res2');
const res3 = pm.collectionVariables.get('res3');
pm.test('Validate responses', function () {
for (const res of [res1,res2,res3]) {
pm.expect(res).to.have.property('code', 200);
pm.expect(res).to.have.property('status', 'OK');
}
});
TWO Pre-request Script:
pm.sendRequest('http://postman-echo.com/get', function(err,res) {
console.log('executing request 4');
pm.collectionVariables.set('res4', res);
})
pm.sendRequest('http://postman-echo.com/get', function(err,res) {
console.log('executing request 5');
pm.collectionVariables.set('res5', res);
})
pm.sendRequest('http://postman-echo.com/get', function(err,res) {
console.log('executing request 6');
pm.collectionVariables.set('res6', res);
})
Test:
const res4 = pm.collectionVariables.get('res4');
const res5 = pm.collectionVariables.get('res5');
const res6 = pm.collectionVariables.get('res6');
pm.test('Validate responses', function () {
for (const res of [res4,res5,res6]) {
pm.expect(res).to.have.property('code', 200);
pm.expect(res).to.have.property('status', 'OK');
}
});
The output looks like the following:
>Get http://postman-echo.com/get
"executing request 2"
>Get http://postman-echo.com/get
"executing request 3"
>Get http://postman-echo.com/get
"executing request 1"
>Get http://postman-echo.com/get
>Get http://postman-echo.com/get <==This is dummy request
"executing request 4"
>Get http://postman-echo.com/get
"executing request 6"
>Get http://postman-echo.com/get
"executing request 5"
>Get http://postman-echo.com/get <==This is dummy2 request
According to Postman's official documentation you can do that Updated august 2023 , To configure a performance test in the Postman desktop app, do the following:
Select Collections in the sidebar and select the collection you want to use for performance testing.
On the collection's Overview tab, select Runner icon Run.
Select the Performance tab.
Enter the number of Virtual users. While the test is running, each virtual user runs the selected requests in the specified order in a repeating loop. A higher number of virtual users puts increased load on your API.
Enter the Test duration in minutes.
Select a Load Profile.
You can run multiple instances of postman Runner and run the same collection with different data files in each instance.