우편 배달부 : 동시에 여러 요청을하는 방법


182

Postman Chrome 확장 프로그램 에서 데이터를 게시하고 싶습니다 .

다른 데이터로 10 건의 요청을하고 싶습니다. 동시에해야합니다.

우편 배달부에서 그렇게 할 수 있습니까?

그렇다면 누구에게 이것이 어떻게 달성 될 수 있는지 설명해 줄 수 있습니까?

답변:


182

postman에는 동시 테스트를 실행하는 것과 같은 기능이 없다고 생각합니다.

내가 당신이라면 나는 그러한 시나리오에 정확하게 사용되는 Apache jMeter 를 고려할 것 입니다.

Postman과 관련하여 귀하의 요구를 충족시킬 수있는 유일한 방법은 Postman Runner입니다. 여기에 이미지 설명을 입력하십시오 세부 사항을 지정할 수 있습니다.

  • 반복 횟수
  • 다른 테스트 실행 등에 대한 데이터가 포함 된 CSV 파일 업로드

실행은 동시 적이 지 않고 연속적입니다.

희망이 도움이됩니다. 그러나 jMeter를 고려하십시오 (당신은 그것을 좋아할 것입니다).


7
Ray의 의견에 따르면이 사이트는 Wordpress.com으로 마이그레이션 된 후 작동하는 링크입니다.
— Aaroninus

93

Postman은 그렇게하지 않지만 curlBash에서 여러 요청을 비동기 적으로 실행할 수 있습니다 .

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로 동시 요청 테스트를 수행 할 수있는 방법이 있습니까?
— phil

이 코드를 사용해 보았고 SAME collection_A를 실행했습니다. 그러나 병렬로 실행하려는 두 개의 다른 컬렉션 (collection_A 및 collection_B)이있는 경우 어떻게해야합니까? 옵션 매개 변수는 어떻게 변경됩니까? 이것을 시도 했습니까? 실험실에서 제공하는 것은로드 테스트 사용 사례에 더 적합한 것으로 보이지만 여러 컬렉션을 병렬로 실행하고 싶습니다. collection_A 및 collection B와 병렬로; 어떤 생각?
— 펠리컨

4
그 파일 된 .js보다 내가 차라리 떠들썩한 파티 스크립트를 작성하는 것
— ttfreeman

4

사람들이 여전히 이것에 대한 간단한 해결책을 찾고 있는지 확실하지 않지만 Postman에서 "Collection Runner"의 여러 인스턴스를 실행할 수 있습니다. 요청이있는 러너를 만들고 "Run"버튼을 여러 번 클릭하면 여러 인스턴스가 나타납니다.


이것은 질문에 따라 요청을 병렬로 실행하지 않을 것입니다
— Vaibhav Sharma

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

그것은 약간 비틀 거리며 평행입니다.
— Ronald

2
귀하의 요청에 0.05 초가 걸리면 행운을 빕니다. 탭을 전환하고 동시에 버튼을 클릭하십시오 ....
— 0.05s가 걸리면

이것은 간단하지 않거나 합리적이지 않습니다.
— ChiefTwoPencils
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.