Как сделать несколько запросов одновременно с помощью почтальона


Я хочу опубликовать данные из почтальон расширение Google Chrome. Я хочу сделать 10 запросов с разными данными, и это должно быть в то же время.

можно ли такое сделать в почтальоне? Если да, может ли кто-нибудь объяснить мне, как этого можно достичь?

Спасибо за ваше время.

6 77

6 ответов:

Я думаю, что в postman нет такой функции, чтобы запускать параллельные тесты.

на твоем месте я бы подумал Apache jMeter, который используется именно для таких сценариев.

в отношении почтальона, единственное что может более или менее удовлетворить ваши потребности - почтальон Бегун. enter image description here Там вы можете указать детали:

  • число итераций,
  • загрузить 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.

enter image description here

во-первых, создайте коллекцию вызовов. Затем запустите коллекция в окне Бегун коллекции. Откройте окно Collection Runner, нажав на ссылку в панели навигации. Выберите коллекцию из выпадающего меню, введите количество итераций и нажмите синюю кнопку Выполнить.

Как изменить данные каждый раз был по адресу здесь и очень подробно в документации здесь.