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


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.