Postman:複数のリクエストを同時に行う方法


182

Postman Google Chrome拡張機能からデータをPOSTしたい。

異なるデータで10個のリクエストを作成したいのですが、同時にリクエストする必要があります。

Postmanでこれを行うことは可能ですか?

はいの場合、これをどのようにして達成できるかを誰かに説明できますか?

回答:


182

同時テストを実行するようなpostmanのような機能はないと思います。

もし私があなただったら、そのようなシナリオに正確に使用されるApache jMeterを検討します。

Postmanに関しては、多かれ少なかれあなたのニーズを満たすことができる唯一のものは-Postman Runnerです。 ここに画像の説明を入力してください そこで詳細を指定できます。

  • 反復回数、
  • さまざまなテスト実行などのデータを含むcsvファイルをアップロードします。

実行は同時ではなく、連続するだけです。

お役に立てば幸いです。しかし、jMeterを検討してください(きっと気に入るはずです)。


7
Rayのコメントにあるサイトはその後Wordpress.comに移行しました。ここに機能リンクがあります
Aaroninus

93

Postmanはそれを行いませんがcurl、Bashで複数のリクエストを非同期で実行できます:

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

&各リクエストの後に必ず忘れずに追加してください。つまり、リクエストは非同期ジョブとして実行される必要があります。

ただし、Postmanはリクエストのカールスニペットを生成できます。https//learning.getpostman.com/docs/postman/sending_api_requests/generate_code_snippets/


3
これは素晴らしく、真の非同期動作をテストするこのようなシンプルで優れたテストです。
ghukill

これが最良の解決策です
Shobi

39

この質問がまだ関連しているかどうかはわかりませんが、現在Postmanにはそのような可能性があります。彼らはそれを数ヶ月前に追加しました。

必要なのは、単純な.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」)を実行します。

詳細はこちら


9
コマンドラインツールnewmanを使用せずに、postman uiを使用して同時リクエストテストを実現する方法はありますか?
フィル

このコードを試してみたところ、SAME collection_Aを実行することができました。しかし、並行して実行したい2つの異なるコレクション(collection_Aとcollection_B)がある場合はどうなりますか?オプションパラメータはどのように変更されますか?あなたはこれを試しましたか?そのラボが標準で提供するものは、負荷テストのユースケースの方が多いようですが、複数のコレクションを並行して実行したいと思います。collection_Aとcollection Bが並行しているように; 何か案が?
ペリカン2018

4
私はその.jsファイルよりもbashスクリプトを記述したい
ttfreeman

4

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


これは、質問された
とおりに

4
バイバブ; 各テストランナーインスタンスは並行して実行されます。
RJFalconer

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を使用してください。複数のスレッドを追加し、それに同期タイマーを追加できます



-7

よりシンプルなGUIアプローチでは、実行するすべてのリクエストを異なるタブで開きます。次に、各タブをクリックして実行します。


1
問題は、並列リクエストを実行することです
Vaibhav Sharma

それはわずかにずらされて平行です。
ロナルド

2
あなたの要求は0.05sを要する場合には、幸運を同時にタブとクリックボタンを切り替える....
Justinas

これは単純でも合理的でもありません。
ChiefTwoPencils
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.