Как сделать несколько запросов одновременно с помощью почтальона
Я хочу опубликовать данные из почтальон расширение Google Chrome. Я хочу сделать 10 запросов с разными данными, и это должно быть в то же время.
можно ли такое сделать в почтальоне? Если да, может ли кто-нибудь объяснить мне, как этого можно достичь?
Спасибо за ваше время.
6 ответов:
Я думаю, что в postman нет такой функции, чтобы запускать параллельные тесты.
на твоем месте я бы подумал Apache jMeter, который используется именно для таких сценариев.
в отношении почтальона, единственное что может более или менее удовлетворить ваши потребности - почтальон Бегун. Там вы можете указать детали:
- число итераций,
- загрузить csv-файл с данными для различных тестовых запусков, так далее.
запуски не будут параллельными, только последовательными.
надеюсь, что это поможет. Но подумайте о jMeter (вам понравится).
почтальон не сделает этого, но вы можете запустить несколько
curl
запросы асинхронно в Bash:curl url1 & curl url2 & curl url3 & ...
не забудьте добавить
&
после каждого запроса, что означает, что запрос должен выполняться как асинхронное задание.
Не знаю, актуален ли еще этот вопрос, но такая возможность у почтальона сейчас есть. Они добавили его несколько месяцев назад.
все, что вам нужно, это создать простой .JS файл и запустить его через узел.js. Выглядит это так:
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.`); }); });
тогда просто запустите это .js-файл ('node fileName.js ' в cmd).
более подробная информация здесь
запустить всю коллекцию в папке в paralle:
'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 });
в коллекции почтальона вы не можете сделать одновременный асинхронный запрос ,поэтому insted использует jmeter.
можно использовать Apache JMeter; это позволяет добавить несколько потоков и добавить таймер синхронизации к нему
бегун коллекции позволяет запускать коллекции. Тысячи раз, если вы хотите.
источник: https://www.getpostman.com/docs/v6/api_testing_and_collection_runner/running_collections
см. изображение для поля, в котором настроено количество итераций. Этот скриншот с рабочего стола Mac версии 6.0.10.
во-первых, создайте коллекцию вызовов. Затем запустите коллекция в окне Бегун коллекции. Откройте окно Collection Runner, нажав на ссылку в панели навигации. Выберите коллекцию из выпадающего меню, введите количество итераций и нажмите синюю кнопку Выполнить.
Как изменить данные каждый раз был по адресу здесь и очень подробно в документации здесь.