邮递员:如何同时发出多个请求

问题描述 投票:172回答:8

我想从邮递员 Google Chrome扩展程序中发布数据。

我想用不同的数据发出10个请求,并且应该同时进行。

邮递员有可能这样做吗?

如果是,任何人都可以向我解释如何实现这一目标?

post postman httprequest
8个回答
174
投票

我想邮递员中没有运行并发测试的功能。

如果我是您,我会考虑将Apache jMeter恰好用于此类情况。

关于邮递员,唯一可以或多或少满足您需求的是-邮递员赛跑者。enter image description here您可以在此处指定详细信息:

  • 迭代次数,
  • 为csv文件上传用于不同测试运行的数据等

运行不会是并行的,只能是连续的。

希望有帮助。但是请考虑使用jMeter(您会喜欢的)。


85
投票

邮递员不这样做,但是您可以在Bash中异步运行多个curl请求:

curl url1 & curl url2 & curl url3 & ...

[请记住在每个请求之后添加一个&,这意味着该请求应作为异步作业运行。

但是邮递员可以为您的请求生成卷发片段:https://learning.getpostman.com/docs/postman/sending_api_requests/generate_code_snippets/


38
投票

我不知道这个问题是否仍然有用,但现在邮递员中就有这种可能性。他们在几个月前添加了它。

[您需要创建一个简单的.js文件,并通过node.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文件(cmd中的'node fileName.js')。

更多详细信息here


4
投票

并行运行文件夹中的所有集合:

'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
});

4
投票

在邮递员的收集运行器中,您无法同时发出异步请求,因此请改用Apache JMeter。它允许您添加多个线程并向其中添加同步计时器


3
投票

[不确定人们是否仍在寻找简单的解决方案,但是您可以在Postman中运行“ Collection Runner”的多个实例。只需创建一个带有某些请求的跑步者,然后多次单击“运行”按钮即可调出多个实例。


1
投票

如果您仅执行GET请求,并且需要Chrome浏览器中的另一个简单解决方案,则只需安装“打开多个URL”扩展名:

https://chrome.google.com/webstore/detail/open-multiple-urls/oifijhaokejakekmnjmphonojcfkpbbh?hl=en

我刚刚一次运行了1500个网址,确实落后于Google一点,但它可以正常工作。


-6
投票

对于更简单的GUI方法,请在不同的选项卡中打开要运行的每个请求。然后,您可以转到每个选项卡并单击运行。

© www.soinside.com 2019 - 2024. All rights reserved.