Postacı: Aynı anda birden fazla istek nasıl yapılır


183

Postacı Google Chrome uzantısından POST verileri göndermek istiyorum .

Farklı verilerle 10 istek yapmak istiyorum ve aynı zamanda olmalı.

Postacı'da bunu yapmak mümkün mü?

Evet ise, kimse bana bunun nasıl başarılabileceğini açıklayabilir mi?

Yanıtlar:


182

Sanırım postacıda eşzamanlı testler yapmak gibi bir özellik yok.

Ben olsaydım tam olarak böyle senaryolar için kullanılan Apache jMeter düşünecektim .

Postacı ile ilgili olarak, az çok ihtiyaçlarınızı karşılayabilecek tek şey: Postacı Koşucusu. resim açıklamasını buraya girin Orada ayrıntıları belirleyebilirsiniz:

  • yineleme sayısı,
  • Farklı testler vb.Için verileri içeren csv dosyasını yükleyin.

Koşular eşzamanlı olmayacak, sadece ardışık olacak.

Umarım yardımcı olur. Ama jMeter'i düşünün (seveceksiniz).


7
Ray'in yorumundaki site o zamandan beri Wordpress.com'a taşındı, işte çalışan bir bağlantı
Aaroninus

93

Postacı bunu yapmaz, ancak curlBash'de birden fazla isteği eşzamansız olarak çalıştırabilirsiniz :

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

&Her istekden sonra bir zaman uyumsuz iş olarak çalışması gerektiği anlamına gelen bir son eklemeyi unutmayın .

Ancak postacı isteğiniz için kıvrılma snippet'i oluşturabilir: https://learning.getpostman.com/docs/postman/sending_api_requests/generate_code_snippets/


3
Bu harika - gerçek asenkron davranış için basit, harika bir test.
ghukill

Bu en iyi çözüm
Shobi

40

Bu sorunun hala alakalı olup olmadığını bilmiyorum, ancak şimdi Postacı'da böyle bir olasılık var. Birkaç ay önce eklediler.

Tek ihtiyacınız olan basit .js dosyası oluşturmak ve node.js ile çalıştırmaktır. Şöyle görünüyor:

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.`);
    });
  });

Sonra sadece bu .js dosyasını çalıştırın (cmd'deki 'node fileName.js').

Daha fazla ayrıntı burada


9
Komut satırı aracı newman'ı kullanmadan postacı kullanıcı arabirimi ile eşzamanlı istek sınaması gerçekleştirmenin bir yolu var mı?
phil

Bu yüzden bu kodu denedim ve SAME collection_A'yı çalıştırmaya çalıştı; ama paralel olarak çalıştırmak istediğim 2 farklı koleksiyonum (collection_A ve collection_B) varsa ne olur? Options parametresi nasıl değişir? Bunu denedin mi? Laboratuarın kutudan çıkardığı şey, bir yük testi kullanım durumu için daha fazla gibi görünüyor, ancak paralel olarak birden fazla koleksiyon çalıştırmak istiyorum; koleksiyon_A ve koleksiyon B paralel olarak; Herhangi bir fikir?
pelikan

4
Bu .js dosyasından daha bash betiği yazmak istiyorum
ttfreeman

4

İnsanların hala bunun için basit çözümler aradığından emin değilim, ancak Postacı'da "Koleksiyon Koşucusu" nun birden fazla örneğini çalıştırabilirsiniz. Bazı istekleri olan bir koşucu oluşturun ve birden fazla örneği görüntülemek için "Çalıştır" düğmesini birkaç kez tıklayın.


Bu, soruda belirtildiği gibi istek paralel çalışmaz
Vaibhav Sharma

4
vaibhav; her test çalıştırıcısı örneği paralel olarak çalışacaktır.
RJFalconer

4

Tüm Koleksiyonu paralel bir klasörde çalıştırın:

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



-7

Daha basit bir GUI yaklaşımı için, farklı sekmelerde çalıştırmak istediğiniz her isteği açın. Ardından her sekmeye bir tıklama çalıştırması yapabilirsiniz.


1
Soru paralel talepler hakkında
Vaibhav Sharma

Paralel, sadece biraz sendeleyerek.
Ronald

2
İsteğiniz
Justinas

Bu basit veya makul değil.
ChiefTwoPencils
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.