POSTMANを使って複数のリクエストを同時に行う方法

Google Chrome拡張機能のPOSTMANからデータをPOSTしたいと思います。異なるデータで10回のリクエストを行い、それを同時に行う必要があります。

POSTMANでこのようなことは可能でしょうか?もし可能であれば、どのようにして実現できるのか説明していただけますか?

お手数ですが、よろしくお願いします。

ソリューション

同時進行でテストを行うような機能はpostmanにはないのでしょうね。

もし私があなただったら、まさにそのようなシナリオのために使われているApache jMeterを検討するでしょう。

Postmanについては、あなたのニーズを多少なりとも満たすことができる唯一のものは - Postman Runnerです。 です。 そこで詳細を指定することができます。

  • 反復処理の回数
  • 異なるテスト実行のためのデータを含むcsvファイルをアップロードする、などです。

テストは同時進行ではなく、連続して行われます。

ご参考になれば幸いです。でも、jMeterを検討してみてください(きっと気に入りますよ)。

解説 (2)

Postmanではそのようなことはできませんが、Bashで複数のcurlリクエストを非同期に実行することができます。

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

各リクエストの後に、そのリクエストが非同期ジョブとして実行されることを意味する & を追加することを忘れないでください。

しかし、Postman はリクエスト用の curl スニペットを生成することができます: https://learning.getpostman.com/docs/postman/sending_api_requests/generate_code_snippets/

解説 (2)

この質問がまだ関連しているかどうかはわかりませんが、今のポストマンにはそのような可能性があります。数ヶ月前に追加されました。

必要なのは、シンプルな.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')。

詳細はこちらをご覧ください。

解説 (3)

postmanのコレクションランナーでは、同時非同期リクエストを行うことができないため、代わりにApache JMeterを使用してください。 複数のスレッドを追加し、同期タイマーを追加できます。

解説 (0)

すべてのコレクションを並行してフォルダで実行します。

'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
});
解説 (0)

人々がまだこれに対する簡単な解決策を探しているかどうかはわかりませんが、Postmanで「Collection Runner」の複数のインスタンスを実行できます。 リクエストに応じてランナーを作成し、[実行]ボタンを複数回クリックして、複数のインスタンスを表示します。

解説 (2)

GETリクエストのみを実行していて、Chromeブラウザ内から別の簡単なソリューションが必要な場合は、「複数のURLを開く」拡張機能をインストールしてください。

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

私は一度に1500のURLを実行したばかりで、少しラググーグルを実行しましたが、それは機能します。

解説 (0)

より簡単なGUIアプローチについては、実行するすべてのリクエストをさまざまなタブで開きます。 . 次に、クリック実行の各タブに移動できます。

解説 (3)